home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / dev / src / LightCycleSour.lha / LightCycle / Light Cycle V0.195.s < prev    next >
Text File  |  1997-01-12  |  60KB  |  3,386 lines

  1. ;TOSPJPKPJPKAAAABNMDAAAAJKBIAAAAENPGAAAACMIAPPDMMGOPAAAACNONPPDMMGOPAAAAOAJNAHIJDHEN
  2. ;Light Cycle
  3.  
  4. ;Menu for Light cycle start 92.08.25.
  5. ;version unknown
  6. ;ranking 4=
  7. ;Corpright by Real Destruction of R/THE/K
  8. ;Tricity Vitava 1992
  9.  
  10.  
  11. ;  Light Cicle V$0.01xx + Menu.
  12. ;
  13. ;         by
  14. ;
  15. ;       R.The.K.
  16. ;          of
  17. ;R E A L   D E S T R U C T I O N
  18. ;
  19. ;Vitava 1992.08.02
  20. ;Updates:
  21. ;1992.08.03    Keyboard, Add 1 Light Cycle, 5 Bipl
  22. ;1992.08.08    Other Analize
  23. ;1992.08.09    Kill only one
  24. ;1992.08.10    Correct Kill, Enter Restart
  25. ;1992.08.13     ? ? ?, Points
  26. ;1992.08.15    Kill points bug
  27. ;1992.08.22    Choose Control
  28. ;1992.08.25    Menu
  29. ;1992.09.11    23:40:00...,Better flash (with errors) [P.S. or not]
  30. ;1992.09.12    3Points
  31. ;1992.09.16    End when flash end
  32. ;1992.09.17    .pp ?
  33. ;1992.09.26    Color font menu
  34. ;1992.09.28    przerwania Creatu(o)ry(a) dolaczone ???
  35. ;1992.10.01    m - wlancza,wylancza muzyke, zycia,credits (wersja podstaw.)
  36. ;1992.10.02    Live, little corect
  37. ;1992.10.17    Tlo.itd.itp.xtd.atd.itp.... . .  .  .    .     .      .       .
  38. ;MCMXCII.X.XVIII ? ? ?
  39. ;1992.10.18    Zmiana miejsca przerwania
  40. ;1992.10.24    Zmiana spowrotem z 3 przerwaniem nie gasi stacji,Speed Enable
  41. ;               p pause and p continiue, no player, dol punkty
  42. ;1992.10.25
  43. ;1992.10.29    Track Disk Device (drive turn off wow!)
  44. ;1992.10.30    oblalem bramki na prawku, dopisuje jakies bzdury tzn poczatek
  45. ;        game over,przeniesione zycia i ich pojawianie sie
  46. ;        test komputerow itd.
  47. ;1992.11.06    contynuacja game over    (lenght 38280 83 86 88) 38396 38486
  48. ;1992.11.11    swieto wyzwolenia czegos tam, jasno-ciemno i ciemno-jasno
  49. ;        versia $12e-$13d Game_over_seq:
  50. ;1992.11.23    18 zdalem prawko !!!!,password dorzucony, ok 607lini efecty
  51. ;1992.11.24    sciemnianie do menu
  52. ;1992.11.26    * ? ! ? * -do not
  53. ;1992.12.04    * ? ! ? * -next d.n.
  54. ;1992.12.23,24    >extern,test przezycia (czy player O_K_Alive
  55. ;        divs facked up, fast error correct,cut something
  56. ;        left shift=no vertical
  57. ;1993.01.03    Lea Copper(pc)
  58. ;1993.01.04    Ciekawe ile bede mial 2 ???,load level,grettings,some error in
  59. ;        alive ???,!!! CHECK THIS !!!
  60. ;????.??.??    alive ok!
  61. ;1993.02.17    hi score dorzucone. hi_score_p: |wyzej|
  62. ;1993.05.16    optimize,optymize,... 163-188 z 63000-59914.17.20
  63. ;        to macro jest chore
  64. ;1993.07.22    Jak ja dawno tego nie ogladalem,
  65. ;1994.08.12    
  66. ;        skoïczone.. ostre poprawki, moûe mnie zatrudniâ a Iridin?
  67. ;        184»1a4
  68.  
  69. ;Checked to xxx line
  70. ;wykopac a5 z controls !
  71. ;stanolem na 580 credits table: !!
  72.  
  73. ;UWAGA PRZERABIAM NA xx(a5)
  74. ;Cos nie tak z pas table ?
  75.  
  76. ;            INCDIR    'df0:'
  77.             INCDIR    'dh1:Sources/LightCycle/'
  78.  
  79. MUSIC=1
  80. KEYTEST=1
  81. SAVE=1
  82.  
  83. Wysokosc:    equ    8    ;Wys fontow
  84.  
  85.     IFEQ    SAVE
  86. *    *    *    *    *    *    *    *    *
  87. Tlo2        equ    $155000
  88.     >extern    'tlo2+.pic',Tlo2    ;$a098
  89. Fonts        equ    tlo2+$a098
  90.     >extern    'slp2.fnt',Fonts    ;$300
  91. mt_data        equ    $130000
  92. *    >extern    'mod.voice from rv-125',mt_data ;141654 $22956
  93.     >extern    'mod.soviet dog',mt_data    ;131304 $200e8
  94.     ENDIF
  95.  
  96. *******************************************************************************
  97. *                    MACRO                      *
  98. *******************************************************************************
  99. VERTICAL:    MACRO
  100.     move.l    d0,-(sp)
  101.     move.l    4(a5),d0
  102.     and.l    #$0001ff00,d0
  103.     cmp.l    #\1*2^8,d0
  104.     bne.s    *-16
  105.     move.l    (sp)+,d0
  106.     ENDM
  107.  
  108. WAITBLITTER:    MACRO
  109.     btst    #14,2(a5)
  110.     bne.s    *-6
  111.     ENDM
  112. EXEC:    MACRO
  113.     move.l    4.w,a6
  114.     ENDM
  115. CALL:    MACRO
  116.     jsr    _\1(a6)
  117.     ENDM
  118. CALLEXEC:MACRO
  119.     move.l    4.w,a6
  120.     jsr    _\1(a6)
  121.     ENDM
  122. CALLB:    MACRO
  123.     MOVEL    \2
  124.     CALL    \1
  125.     ENDM
  126. JUMP:    MACRO
  127.     jmp    _\1(a6)
  128.     ENDM
  129. MOVEL:    MACRO
  130.     move.l    \1Base(pc),a6
  131.     ENDM
  132.  
  133. *******************************************************************************
  134. *                    PROGRAM                      *
  135. *******************************************************************************
  136.  
  137.  
  138.     Section    TheProgram,Code_C
  139.  
  140.  *****
  141. *        t             t
  142.  *****  ttt  aa   r r ttt
  143.       *  t  a  a   r   t
  144. ******   t   aaaa  r   t
  145. Start:
  146.     lea    $dff000,a5
  147.  
  148.     lea    DosName(pc),a1
  149.     EXEC
  150.     CALL    OldOpenLibrary
  151.     move.l    d0,DosBase
  152.     beq.w    ENDProg
  153.  
  154.  
  155.     bsr    StartIrq    ;muzyka w przerwaniach
  156.  
  157. *    lea    Module,a0
  158. *    lea    $40000,a1
  159. *    move.l    #107676,d0
  160. *    bsr    Power_Packer
  161.  
  162.     bsr    TrackDiskDevice
  163. ;menu
  164.     lea    BitplanAdres+2,a0
  165.     move.l    #Ekran,d2
  166.     moveq    #4,d0        ;Ilosc bitplanow
  167.     bsr    Copp_Loop
  168.  
  169. ;gra
  170.     lea    BitplanADR+2,a0
  171.     move.l    #Ekran,d2    ;Ekran gry
  172.     moveq    #5,d0        ;Ilosc Bitplanow
  173.     bsr    Copp_Loop
  174.  
  175.     lea    Tlo2+$30,a0    ; z obrazka do Copper Listy !!!!
  176.     lea    ScreenMinColor(pc),a1
  177.     moveq    #16,d2    ;Ilosc Colorow
  178.     bsr    DoColor
  179.  
  180.     bsr    Fonty
  181.  
  182.     VERTICAL $100
  183.  
  184.     bsr    copy_tlo
  185.  
  186.     lea    Copper,a0
  187.     move.l    a0,$80(a5)
  188.  
  189.     bsr    CJM
  190.  
  191. ;Texty przed startem
  192.  
  193.     moveq    #0,d0
  194.  
  195.     moveq    #3,d6
  196.     move.l    #100,d5
  197. War_Loop:
  198.     lea    WarningText(pc),a0
  199.     bsr    WyswietlText
  200.     move.l    d5,d0
  201.     bsr    Wait_a_m
  202.  
  203.     bsr    JCM
  204. ;>>
  205.     bra.s    TheMenu
  206. ;>>
  207.     move.l    d5,d0
  208.     asr.l    #2,d0
  209.     bsr    Wait_a_m
  210.     subq    #1,d6
  211.     bne.s    War_Loop
  212.  
  213.  
  214.     moveq    #25,d0
  215.     bsr    Wait_a_m
  216.  
  217.     bsr    copy_tlo
  218.  
  219.     lea    GwiazdkaThings,a0
  220.     bsr    WyswietlText
  221.     moveq    #100,d0
  222.     bsr    Wait_a_m
  223.  
  224.     moveq    #25,d0
  225.     bsr    Wait_a_m
  226.  
  227.     bsr    JCM
  228.  
  229.  
  230.                  * * * * * * * * * * * * * * * * *
  231. *       *
  232. * *   * *
  233. *   *   *
  234. *       *
  235. *       *enu    ;;
  236. TheMenu:
  237.     bsr    copy_tlo
  238.     lea    MenuText(pc),a0        ;Menu Text
  239.     bsr    WyswietlText
  240.     lea    Copper,a0
  241.     move.l    a0,$80(a5)
  242.     bsr    CJM
  243.  
  244. Mouse:
  245.     VERTICAL $100
  246.  
  247.     bsr    ReadKey
  248.  
  249.     btst    #6,$bfe001        ;LMB = Start Game
  250.     beq.w    ChST
  251.  
  252.     btst    #10,$dff016
  253.     beq.w    The_Real_End_of_The_Game
  254.  
  255.     btst    #7,$bfe001        ;Joy Fire = Start Game
  256.     beq.s    ChST
  257.  
  258. ;    moveq    #%1,d0
  259. ;    bsr    Czytaj
  260.  
  261.     cmp.b    #$75,d0        ; ESC = Exit Game
  262.     beq    The_Real_End_of_The_Game
  263.     cmp.b    #$45,d0        ; * = Exit Game
  264.     beq    The_Real_End_of_The_Game
  265.  
  266.     cmp.b    #$5f,d0        ;F1 - Control One
  267.     bne.s    CheckTwo
  268.     bsr    ControlsOne
  269.     bra.s    TheMenu
  270. CheckTwo:
  271.     cmp.b    #$5d,d0        ;F2 - Control Two
  272.     bne.s    CheckThree
  273.     bsr    ControlsTwo
  274.     bra.w    TheMenu
  275. CheckThree:
  276.     cmp.b    #$5b,d0        ;F3 - Control Three
  277.     bne.s    CheckHi
  278.     bsr    ControlsThree
  279.     bra.w    TheMenu
  280. CheckHi:
  281.     cmp.b    #$59,d0        ;F4 - Hi Score
  282.     bne.s    CheckCode
  283.     bsr    JCM
  284.     move    #1,MenuEnter
  285.     bsr    hi_score_p    ;<NOT AT ALL>
  286.     bra    TheMenu
  287. CheckCode:
  288.     cmp.b    #$57,d0        ;F5 - Password
  289.     bne.s    CheckCredits
  290.     bsr    Password
  291.     bra    TheMenu
  292. CheckCredits:
  293.     cmp.b    #$55,d0        ;F6 - Credits
  294.     bne.s    Check_Start
  295.     bsr    Credits        ;wersja podstawowa
  296.     bra    TheMenu
  297. Check_Start:
  298.     cmp.b    #$4d,d0        ;F10 - Start
  299.     bne.s    ContCheck
  300. ChST:
  301.     bsr    Init_Game    ;Start Game
  302.     bra    TheMenu    ;powrot do menu
  303. ContCheck:
  304.     bra    Mouse
  305.                  * * * * * * * * * * * * * * * * *
  306. ControlsOne:
  307.     lea    Player1_Rgame(pc),a3
  308.     lea    PlayerOne(pc),a4
  309.     moveq    #$000f,d0
  310.     bra.s    ChangeControl
  311. ControlsTwo:
  312.     lea    Player2_Rgame(pc),a3
  313.     lea    PlayerTwo(pc),a4
  314.     move    #$00f0,d0
  315.     bra.s    ChangeControl
  316. ControlsThree:
  317.     lea    Player3_Rgame(pc),a3
  318.     lea    PlayerThree(pc),a4
  319.     move    #$0f00,d0
  320.  
  321. ChangeControl:
  322.     bsr    JCM
  323. ChangeContr:
  324.     bsr    copy_tlo
  325.  
  326.     lea    ControlText(pc),a0
  327.     bsr    WyswietlText
  328.     bsr    CJM
  329.  
  330. contr
  331.     VERTICAL $100
  332.     VERTICAL $101
  333.     bsr    ReadKey
  334.  
  335. *    moveq    #0,d0        ;LMB and Fire not akcept
  336. *    bsr    Czytaj
  337.     cmp.b    #$5f,d0        ;F1 - Joy port 1
  338.     bne.s    C_f2
  339.     move    #%0010,(a4)
  340.     bra.s    Change_Control_End
  341. C_f2:
  342.     cmp.b    #$5d,d0        ;F2 - Joy port 0
  343.     bne.s    C_f3
  344.     move    #%0001,(a4)
  345.     bra.s    Change_Control_End
  346. C_f3:
  347.     cmp.b    #$5b,d0        ;F3 - Keyboard
  348.     bne.s    C_f4
  349.     move    #%0100,(a4)
  350.     bra.s    Change_Control_End
  351. C_f4:
  352.     cmp.b    #$59,d0        ;F4 - Computer
  353.     bne.s    C_f5
  354.     move    #%1000,(a4)
  355.     bra    Change_Control_End
  356. C_f5:
  357. *    cmp.b    #$57,d0        ;F5 - RedefineKeys *dont work
  358. *    bne.s    C_F6
  359. *    move    #%0100,(a4)    ;Keyboard
  360. *    bsr    RedefineKeys
  361. *    bra    Change_Control_End
  362. C_f6:                ;F6 - No Player
  363.     cmp.b    #$55,d0
  364.     bne.s    C_f7
  365.     bsr    JCM
  366.     move    #0,(a3)        ;player nie gra i juz
  367.     rts
  368.  
  369. C_f7:                ; nothing at now
  370.     bra.s    contr
  371. Change_Control_End:    ;if you change somthing here,change in c_f6 too.!
  372.     bsr    JCM
  373.     move    #1,(a3)
  374.     rts
  375.  
  376. *RedefineKeys:
  377. *    rts
  378.  
  379.  *****               *  *  *
  380. *                    *    *** ****
  381. *      * **  *     ***  *  *   **
  382. *       *   * *   *  *  *  *     *
  383.  *****  *    **** ***** *  *  ***
  384.  
  385. Credits:    ;wersja podstawowa !
  386.  
  387. ;a gdyby to przerobic ?? ok!
  388.  
  389.     lea    CreditsTable(pc),a3
  390. creditsloop
  391.     bsr    JCM ;d0-d6 a0
  392.     bsr    copy_tlo    ;a0,a1,d0,d1
  393.     tst.l    (a3)
  394.     bne.s    noecr
  395.     rts
  396. noecr
  397.     move.l    (a3)+,a0
  398.     bsr    WyswietlText ;d0,a0,a1,a2
  399.     bsr    CJM ;d3-d5 a0-a1
  400.     bsr    czekay    ;d0
  401.  
  402.     bra.s    creditsloop
  403.  
  404. CreditsTable:
  405.  dc.l CreditsText0,CreditsText1,CreditsText2,CreditsText3,CreditsText4
  406.  dc.l 0
  407.  
  408. ;Password by R.The.K./R.D. for Light Cycle
  409. ;Wersion unknown
  410. ;Rozpoznaje kody klawiszy. WOW !
  411. ;                 R E A L   D E S T R U C T I O N
  412. Password:
  413.     bsr    JCM
  414.  
  415. WaitKey:
  416.     IFNE    KEYTEST
  417.     btst    #0,$bfec01
  418.     bne.s    WaitKey
  419.     ENDIF
  420.     rts
  421. ClearKey:
  422.     IFNE    KEYTEST
  423.     move.b    #0,$bfec01
  424.     ENDIF
  425.     rts
  426. ReadKey:
  427.     IFNE    KEYTEST
  428.     move.b    $bfec01,d0
  429.     ELSE
  430.     moveq    #0,d0
  431.     ENDIF
  432.     rts
  433. Ppass:
  434.     bsr    WaitKey
  435.  
  436.     bsr    copy_tlo
  437.  
  438.     lea    Text(pc),a0
  439.     bsr    WyswietlText
  440.  
  441.     bsr    CJM
  442.     move.l    #p_text+6,Password_Adr
  443.  
  444. Loop_P:
  445.     btst    #6,$bfe001
  446.     beq    End
  447. Loop2:
  448.     cmp.b    #$ff,6(a5)
  449.     bne.s    Loop2
  450.  
  451. Ttest:
  452.     btst    #6,$bfe001
  453.     beq    End
  454.  
  455.     bsr    ReadKey
  456.  
  457.     cmp.b    #63,d0
  458.     bne.s    NieLewy_Shift    ;wcisniety !
  459.     move    #1,Shift
  460. NieLewy_Shift:
  461.     cmp.b    #61,d0
  462.     bne.s    NiePrawy_Shift    ;wcisniety !
  463.     move    #1,Shift    ;1 wcisniety
  464. NiePrawy_Shift:
  465.  
  466.     cmp.b    #62,d0
  467.     bne.s    NieLewy_ShiftW    ;puszczony
  468.     move    #0,Shift
  469. NieLewy_ShiftW:
  470.  
  471.     cmp.b    #60,d0
  472.     bne.s    NiePrawy_ShiftW    ;puszczony
  473.     move    #0,Shift    ;0 puszczony
  474. NiePrawy_ShiftW:
  475.  
  476. ;Enter and Return
  477.     cmp.b    #$79,d0    ;enter
  478.     beq.s    Yes_Password
  479.  
  480.     cmp.b    #$77,d0    ;return
  481.     bne.s    No_Password
  482. Yes_Password:
  483.     bra.s    Check_Password
  484. No_Password:
  485. ;Del
  486.     cmp.b    #$7d,d0    ;del
  487.     bne.s    lb_0
  488.     tst    PasswordNr
  489.     beq.s    lb_0
  490.     subq    #1,PasswordNr
  491.     subq.l    #1,Password_Adr
  492.     move.l    Password_Adr,a0
  493.     move.b    #'_',(a0)+
  494.     move.b    #'_',(a0)
  495. lb_0
  496.     btst    #0,$bfec01 ;?
  497.     beq    Loop_P
  498.  
  499.     move.b    #0,$bfec01
  500.     bsr    Search    ;szuka i wrzuca litere
  501.  
  502.     lea    p_text(pc),a0            ;Text
  503.     bsr    WyswietlText
  504.  
  505.     bra    Loop_P
  506.  
  507.  **** *             *
  508. *     *             *
  509. *     ***   *    ** * *
  510. *     *  * * *  *   **
  511.  **** *  *  ***  ** * * Password
  512. Check_Password:
  513.     lea    Password_Table(pc),a1
  514.     moveq    #0,d2    ;password nr
  515.     moveq    #0,d1
  516.  
  517. Pas_next:
  518.     lea    6+p_text(pc),a0
  519.     moveq    #12,d0    ;ile liter
  520. Chc_Next:
  521.     move.b    (a0)+,d1
  522.     cmp.b    (a1),d1
  523.     beq.s    f1o
  524.  
  525.     add.b    #32,d1
  526.     cmp.b    (a1),d1 ;duze dla malych liter
  527.     beq.s    f1o
  528.  
  529.     sub.b    #64,d1
  530.     cmp.b    (a1),d1 ; i male dla duzych liter
  531.     bne.s    NextPassword
  532. f1o:
  533.     addq.l    #1,a1
  534.     subq    #1,d0
  535.     bne.s    Chc_Next
  536. ;chaslo znalezione
  537.     move    #$fff,$180(a5)
  538.     bsr.s    Czysc_password
  539.     move    d2,Password_NR ;do rozpoznania ktory password
  540.     bsr    Password_Effect ;niektore daja natychmiastowe efekty
  541.     rts ;powrot do menu
  542.  
  543. NextPassword:
  544.     addq    #1,d2
  545.     cmp    #ilosc_chasel,d2    ;ilosc hasel
  546.     bne.s    nolastpas
  547. ;koniec chasel
  548.     move    #$600,$180(a5) ;niema takigo passwordu
  549.     bsr.s    Czysc_password
  550.     bsr    JCM
  551.     rts ;powrot do menu
  552.  
  553. nolastpas
  554.     move.l    d2,d1
  555.     muls    #12,d1
  556.     lea    Password_Table(pc),a1
  557.     add.l    d1,a1
  558.     bra.s    Pas_next
  559.  
  560. Czysc_password:
  561.     move.l    #p_text+6,Password_Adr
  562.     move    #0,PasswordNr
  563.     lea    6+p_text(pc),a0
  564.     moveq    #12-1,d0
  565. liniuj:
  566.     move.b    #'_',(a0)+
  567.     dbf    d0,liniuj
  568.     rts
  569.  
  570.  ****                         *
  571. *                             *
  572.  ****   *    **    * **  ***  ***
  573.      * * *  *  *    *   *     *  *
  574. *****   ***  *****  *    ***  *  *
  575.  
  576. Search:
  577.     tst    Shift    ;1wcisniety 0puszczony
  578.     beq.s    No_Shift
  579.     lea    Shift_Table(pc),a0
  580.     bra.s    Ok_Ok_Cont
  581. No_Shift:
  582.     lea    No_Shift_Table(pc),a0
  583. Ok_Ok_Cont:
  584.     moveq    #0,d1    ;' '
  585. Szukaj:
  586.     cmp.b    (a0)+,d0
  587.     beq.s    Found
  588.     addq.l    #1,a0
  589.     addq    #1,d1
  590.     cmp    #90,d1    ;za 'z'+troche znaczkow
  591.     bne.s    Szukaj
  592.     rts
  593. Found:
  594.     move.l    Password_Adr(pc),a1
  595.     addq    #1,PasswordNr
  596.     cmp    #12,PasswordNr
  597.     bne.s    Nie_caly_Pasw
  598.     move    #11,PasswordNr
  599.     subq.l    #1,Password_Adr
  600. Nie_caly_Pasw:
  601.     addq.l    #1,Password_Adr
  602.     move.b    (a0),(a1)
  603.     rts
  604. czekay: ;czeka az puscisz lub fire,mouse
  605.     btst    #0,$bfec01
  606.     bne.s    czekay
  607.     move.b    $bfec01,d0
  608. czek:
  609.     btst    #7,$bfe001 ;joy fire
  610.     beq.s    ecze
  611.     btst    #6,$bfe001 ;lmb
  612.     beq.s    ecze
  613.     cmp.b    $bfec01,d0
  614.     beq.s    czek
  615. ecze    rts
  616.  
  617. Password_Effect:
  618.     bsr.w    JCM
  619.     bsr.w    copy_tlo
  620. p0:
  621.     move.w    Password_NR(pc),d0
  622.     add.w    d0,d0
  623.     add.w    d0,d0
  624.     move.l    PassTable(pc,d0.w),a0
  625.     cmp.l    #0,a0
  626. ;    tst.l    a0
  627.     beq.s    Jeszcze_niema
  628.     bsr    WyswietlText
  629.     bsr.w    CJM
  630.     bsr    czekay
  631.     bsr.w    JCM
  632.     rts
  633. Jeszcze_niema:
  634.     bsr.w    CJM
  635.     move    #$f00,$180(a5)
  636.     bsr.w    JCM
  637.     rts
  638.  
  639. PassTable: dc.l AlienTXT,EmptyT,EmptyT,EmptyT,EmptyT,EmptyT,EmptyT,EmptyT
  640.  dc.l EmptyT,EmptyT,EmptyT,mtvTXT,LockyTXT,0,0,0,0,0,0
  641.  dc.l PillarTXT,0,KaneTXT,CreatTXT,0,0
  642.  
  643. ***** ***** *    * *****
  644.   *   *     *    *   *
  645.   *   ***    ****    *
  646.   *   *     *    *   *
  647.   *   ***** *    *   *
  648.  
  649.  
  650. ***
  651. WyswietlText:        ;a0 text
  652. ***
  653.     btst    #14,2(a5)
  654.     bne.s    WyswietlText    ;?
  655.  
  656.     moveq    #0,d0    ;just clear
  657.     lea    Ekran+$50,a1    ;pojawienie sie fontow
  658. OffsetC:
  659.     moveq    #0,d0
  660.     move.b    (a0)+,d0
  661.     bne.s    SameLine
  662.     move.b    (a0)+,d0
  663.     bne.s    noe
  664.     rts
  665. noe
  666.     lea    Ekran+$50,a1    ;pojawienie sie fontow
  667.     muls    #4*40,d0
  668.     add.l    d0,a1
  669.     bra.s    OffsetC
  670. SameLine:
  671.     sub.b    #$20,d0            ;right character
  672.     add.w    d0,d0
  673.     add.w    d0,d0
  674.     move.l    FontADR(pc,d0.w),a2        ;odczyt odresu fonta
  675. BitP4:
  676.     moveq    #21-1,d0        ;wysokosc
  677. Copy:
  678.     move.w    (a2),(a1)    ;copiowanie na ekran
  679.     lea    40(a2),a2
  680.     lea    40(a1),a1
  681.     move.w    (a2),(a1)
  682.     lea    3*40(a2),a2
  683.     lea    3*40(a1),a1
  684.     dbf    d0,Copy
  685.     lea    [-21*4*40+2](a1),a1
  686.  
  687.     bra.s    OffsetC
  688. FontADR:
  689.         blk.l    100,0
  690.  
  691. BlitterClear:
  692.     WAITBLITTER
  693.  
  694.     move.l    a0,$50(a5)        ;BLTAPT
  695.     move.l    #$01000000,$40(a5)    ;BLTCON0 d=a
  696.     move.l    #$00000000,$64(a5)        ;BLTAMOD
  697.     move.w    #[255*64*3]+[320/16],$58(a5)    ;BLTSIZE
  698.  
  699.     rts
  700.  
  701.  ****
  702. *
  703. *
  704.  **** -opy tlo
  705.  
  706. ;a0,a1,d0,d1
  707. copy_tlo:
  708.     lea    Ekran,a1
  709.     lea    Tlo2+152,a0
  710.     move.w    #256-1,d0    ;ilosc lini
  711. Linia_Loop:
  712.     moveq    #80/4-1,d1
  713. Linia_s_l:    move.l    (a0)+,(a1)+
  714.     dbf    d1,Linia_s_l
  715.  
  716.     lea    80(a0),a0
  717.  
  718.     moveq    #80/4-1,d1
  719. Czysc_dwie_linie:
  720.     move.l    #0,(a1)+
  721.     dbf    d1,Czysc_dwie_linie
  722.  
  723.     dbf    d0,Linia_Loop
  724.     rts
  725.  
  726. ********
  727. *      *
  728. * ******
  729. *   ****
  730. * ******
  731. *      *
  732. ********nd    ;;
  733. The_Real_End_of_The_Game:
  734.     btst    #14,$dff002
  735.     bne.s    The_Real_End_of_The_Game
  736.  
  737.     bsr.w    JCM
  738.  
  739.     bsr    StopIrq    ;muzyka w przerwaniach
  740.  
  741.  
  742.                 ENDProg:
  743.  
  744.     bsr    FreeMem
  745.  
  746.     EXEC
  747.     moveq    #0,d0
  748.     move.l    DosBase,a1
  749.     CALL    CloseLibrary
  750.  
  751.     lea    Gfxname(pc),a1
  752.     CALL    OldOpenLibrary
  753.     beq.s    Error
  754.     move.l    d0,a1
  755.     move.l    38(a1),$dff080
  756.     jsr    -414(a6)
  757.  
  758.     IFNE    MUSIC
  759.     jsr    mt_end
  760.     ENDIF
  761.  
  762.     moveq    #0,d0
  763. Error:    rts
  764.  
  765. Wait_a_moment:
  766.     move.w    #400-1,d1
  767. Wait_a_m:
  768.     VERTICAL $100
  769.     VERTICAL $101
  770.  
  771.     btst    #6,$bfe001
  772.     bne.s    .1
  773.     btst    #7,$bfe001
  774.     bne.s    .1
  775.  
  776.     dbf    d1,Wait_a_m
  777. .1
  778.     moveq    #0,d0
  779.     rts
  780.  
  781. Copp_Loop:
  782.     move.l    d2,d1
  783.     swap    d1
  784.     move.w    d1,(a0)
  785.     addq.l    #4,a0
  786.     move.l    d2,d1
  787.     add.l    #40,d2        ;Adr nast Bitpl.
  788.     move.w    d1,(a0)
  789.     addq.l    #4,a0
  790.  
  791.     subq.b    #1,d0            ;Pentla
  792.     bne.s    Copp_Loop
  793.     rts
  794.  
  795. ;Przerzuca colory z ifa do Copper listy !
  796. ;by Thestruction of De R.K.
  797. ;Vitava 1992.08.04.
  798. ;a0-adres colorow w iffie
  799. ;a1-gdzie wrzucac w copper liscie
  800. ;d2-ilosc kolorow
  801.  
  802. DoColor:            ;Przerzuca Colory
  803.  
  804.     move.w    #$180,d3    ;kolor startowy
  805. DoCol:    moveq    #3-1,d1
  806.     moveq    #0,d0        ;Clear
  807. DoColor3Loop:
  808.     move.b    (a0)+,d4
  809.     ror.b    #4,d4
  810.     add.b    d4,d0
  811.     rol.w    #4,d0
  812.     dbra    d1,DoColor3Loop
  813.     ror.w    #4,d0
  814.     move.w    d3,(a1)+
  815.     move.w    d0,(a1)+
  816.     addq.w    #2,d3
  817.     subq.b    #1,d2
  818.     bne.s    DoCol
  819.     rts
  820. ;robi tabele adresow fontow
  821. Fonty:
  822.     lea    FontADR(pc),a1
  823.     lea    Tlo2+152+80,a0        ;pentla dla adresow fontow
  824.     moveq    #100,d0            ;ilosc fontow
  825. cmp1:    moveq    #20,d1        ;ile w lini
  826. CMP:
  827.     move.l    a0,(a1)+
  828.     addq.l    #2,a0
  829.     subq.b    #1,d0
  830.     beq.s    .ok
  831.     subq.b    #1,d1
  832.     bne.s    CMP
  833.     add.l    #[21*40*4]-40,a0
  834.     bra.s    cmp1
  835. .ok    rts
  836.  
  837. ScreenMinColor:
  838.     blk.l    16*2,0
  839.  
  840. *    *
  841. *    *
  842. *    *
  843. ******
  844. *    *
  845. *    *
  846. *    * i Score
  847.  
  848. **********************************
  849. ;Password metamorphoses to hiscore. . .
  850. ;                 R E A L   D E S T R U C T I O N
  851.  
  852. hhhhh    dc.l    0    ;***********
  853.  
  854. hi_score_p:
  855.     btst    #0,$bfec01    ;pusc klawisz cholero
  856.     bne.s    hi_score_p
  857.  
  858.     bsr    JCM
  859.  
  860.     bsr    copy_tlo
  861.  
  862.     tst.w    MenuEnter    ;wejscie z menu
  863.     bne    Move_HI
  864.  
  865.     lea    Enter_T(pc),a0
  866.     bsr.w    WyswietlText
  867.     bsr    CJM
  868.  
  869.     lea    HighScoreData(pc),a0
  870.     move.l    hhhhh,d0
  871.     moveq    #1,d1
  872. szk    cmp.l    (a0),d0
  873.     bpl    okioki
  874.     lea    16(a0),a0
  875.     addq.w    #1,d1
  876.     cmp.w    #10,d1
  877.     bne    szk
  878. ;gowno nie wlazlez do hi score
  879.     bra    Move_HI
  880. okioki
  881.     cmp.w    #10,d1
  882.     bne    no10
  883.     move.b    #'1',Enter_T+2
  884.     move.b    #'0',Enter_T+3
  885.     bra    d10z
  886. no10    add.w    #'0',d1
  887.     move.b    d1,Enter_T+3
  888. d10z
  889.     move.l    #Enter_T+5,Password_Adr
  890.     lea    17+Enter_T(pc),a0
  891.     move.l    hhhhh,d0
  892.     bsr    Przelicz_ty_
  893.  
  894.     lea    Enter_T(pc),a0
  895.     bsr.w    WyswietlText
  896.  
  897.     moveq    #0,d0
  898. LoopX
  899.     VERTICAL $100
  900.  
  901.     cmp.b    #63,$bfec01
  902.     bne.s    NL_S    ;wcisniety !
  903.     move.w    #1,Shift
  904. NL_S
  905.     cmp.b    #61,$bfec01
  906.     bne.s    NP_S    ;wcisniety !
  907.     move.w    #1,Shift    ;1 wcisniety
  908. NP_S:
  909.     cmp.b    #62,$bfec01
  910.     bne.s    NL_SW    ;wycisniety
  911.     move.w    #0,Shift
  912. NL_SW:
  913.     cmp.b    #60,$bfec01
  914.     bne.s    NP_SW    ;wycisniety
  915.     move.w    #0,Shift    ;0 puszczony
  916. NP_SW:
  917.  
  918. ;Enter and Return
  919.     cmp.b    #$77,$bfec01    ;return
  920.     beq.s    Enter_hi
  921.     cmp.b    #$79,$bfec01    ;enter
  922.     beq.s    Enter_hi
  923.  
  924. ;Del
  925.     cmp.b    #$7d,$bfec01
  926.     bne.s    ol2
  927.     cmp.w    #0,PasswordNr
  928.     beq.s    ol2
  929.     subq.w    #1,PasswordNr
  930.     subq.l    #1,Password_Adr
  931.     move.l    Password_Adr,a0
  932.     move.b    #' ',(a0)+
  933.     move.b    #' ',(a0)
  934. ol2:
  935.     btst    #0,$bfec01
  936.     beq.w    LoopX
  937.     move.b    $bfec01,d0
  938.     move.b    #0,$bfec01
  939.     bsr.w    Search2    ;szuka i wrzuca litere
  940.  
  941.     lea    Enter_T(pc),a0
  942.     bsr.w    WyswietlText
  943.  
  944.     bra.w    LoopX
  945.  
  946. Enter_hi
  947.     bsr    JCM
  948.     bsr    copy_tlo
  949.     lea    HighScoreData(pc),a1
  950.     move.l    hhhhh,d0
  951.     moveq    #1,d1
  952. ksz    cmp.l    (a1),d0
  953.     bpl    The_place
  954.     lea    16(a1),a1
  955.     addq.w    #1,d1
  956.     bra    ksz
  957.  
  958. The_place
  959.     moveq    #10,d2
  960.     sub.w    d1,d2
  961. ;    subq.w    #1,d2
  962.     lea    EndHii(pc),a2
  963.     lea    16+EndHii(pc),a3
  964. ujii0    moveq    #16-1,d3
  965. ujii    move.b    -(a2),-(a3)
  966.     dbf    d3,ujii
  967.     dbf    d2,ujii0
  968.  
  969.     move.l    d0,(a1)+    ;Wrzuca punkty
  970.     lea    5+Enter_T(pc),a0
  971.     move.b    (a0)+,(a1)+    ;przerzuca do hi score <podstawowego
  972.     move.b    (a0)+,(a1)+
  973.     move.b    (a0)+,(a1)+
  974.     move.b    (a0)+,(a1)+
  975.     move.b    (a0)+,(a1)+
  976.     move.b    (a0)+,(a1)+
  977.     move.b    (a0)+,(a1)+
  978.     move.b    (a0)+,(a1)+
  979.     move.b    (a0)+,(a1)+
  980.     move.b    (a0)+,(a1)+
  981.     move.b    (a0)+,(a1)+
  982.  
  983.  
  984. Move_HI
  985.     move.w    #0,MenuEnter
  986.     lea    4+OnePla(pc),a1
  987.     lea    4+HighScoreData(pc),a0
  988.     moveq    #10-1,d0
  989. copnij                ;zmienia format do wyswietlenia
  990.     move.b    (a0)+,(a1)+
  991.     move.b    (a0)+,(a1)+
  992.     move.b    (a0)+,(a1)+
  993.     move.b    (a0)+,(a1)+
  994.     move.b    (a0)+,(a1)+
  995.     move.b    (a0)+,(a1)+
  996.     move.b    (a0)+,(a1)+
  997.     move.b    (a0)+,(a1)+
  998.     move.b    (a0)+,(a1)+
  999.     move.b    (a0)+,(a1)+
  1000.     move.b    (a0)+,(a1)+
  1001.     addq.l    #5,a0    ;punkty olac
  1002.     lea    11(a1),a1
  1003.     dbf    d0,copnij
  1004.  
  1005.     lea    OnePla+16,a0
  1006.     lea    HighScoreData,a1
  1007.     moveq    #10-1,d1
  1008. ilscor
  1009.     move.l    (a1),d0
  1010.     lea    16(a1),a1
  1011.     bsr    Przelicz_ty_
  1012.     lea    22(a0),a0    ;???
  1013.  
  1014.     dbf    d1,ilscor
  1015.  
  1016.     lea    Hi_Text(pc),a0
  1017.     bsr    WyswietlText
  1018.  
  1019.     bsr    CJM
  1020.  
  1021.     move.b    #0,$bfec01
  1022.  
  1023. .1    tst.b    $bfec01
  1024.     bne.s    rreettss
  1025.     btst    #6,$bfe001
  1026.     bne    .1
  1027. rreettss
  1028.     bsr    JCM
  1029.     rts
  1030.  
  1031. ;dzies
  1032. ;wescie:
  1033. ;    a0 gdze wrzucac liczbe w asci
  1034. ;    d0 liczba
  1035. Przelicz_ty_
  1036.     movem.l    d0-d2/a0-a1,-(sp)
  1037.     lea    Dzes,a1    ;tabela dziesiatek (wykopanie divsa
  1038.     moveq    #0,d2
  1039.     move.l    (a1)+,d1
  1040. L_00
  1041.     move.l    (a1)+,d1
  1042.     beq    nomore_tears
  1043.  
  1044. .1    cmp.l    d1,d0
  1045.     blt.s    l_02        ;Gdy mniejszy
  1046.     sub.l    d1,d0
  1047.     addq.b    #1,d2
  1048.     bra.s    .1
  1049. l_02
  1050.     move.b    d2,(a0)+    ;Wrzutka liczby
  1051.     moveq    #0,d2
  1052.     bra.s    L_00
  1053. nomore_tears
  1054.     sub.l    #5,a0
  1055.     add.b    #$30,(a0)+    ;?'0'=$30
  1056.     add.b    #$30,(a0)+
  1057.     add.b    #$30,(a0)+
  1058.     add.b    #$30,(a0)+
  1059.     add.b    #$30,(a0)+
  1060.     movem.l    (sp)+,d0-d2/a0-a1
  1061.     rts
  1062.  
  1063. Enter_T:
  1064.     dc.b    0
  1065.     dc.b    200,' 1.            00000',0
  1066.     even
  1067.     dc.w    0
  1068. Hi_Text:    ;'                    '
  1069. ;11 na nazwe
  1070.     dc.b    0
  1071.     dc.b   3,'     <Hi Score>',0
  1072. OnePla    dc.b  30,' 1.                 ',0 ;reszta zostanie wrzucona
  1073.     dc.b  52,' 2.                 ',0
  1074.     dc.b  74,' 3.                 ',0
  1075.     dc.b  96,' 4.                 ',0
  1076.     dc.b 118,' 5.                 ',0
  1077.     dc.b 140,' 6.                 ',0
  1078.     dc.b 162,' 7.                 ',0
  1079.     dc.b 184,' 8.                 ',0
  1080.     dc.b 208,' 9.                 ',0
  1081.     dc.b 230,'10.                 ',0
  1082.     even
  1083.  
  1084. ;format zapisu dlugie slowo punkty potem 12 znakow nazwy [12 nie uzywany]
  1085. ;razem 16 bajtow
  1086. ;hiscore
  1087. HighScoreData:
  1088.  dc.l    10000
  1089.  dc.b '  Gfx by:   '    ;1
  1090.  dc.l    9999
  1091.  dc.b '  Slepper   '    ;2
  1092.  dc.l    7500
  1093.  dc.b ' Music by:  '    ;3
  1094.  dc.l    8756
  1095.  dc.b '  BFA/SCT   '    ;4
  1096.  dc.l    8576
  1097.  dc.b 'Dr.Stool/RD '    ;5
  1098.  dc.l    2222
  1099.  dc.b ' Code by:   '    ;6
  1100.  dc.l    2221
  1101.  dc.b 'R.The.K./RD '    ;7
  1102.  dc.l    342
  1103.  dc.b '   Real     '    ;8
  1104.  dc.l    111
  1105.  dc.b 'Destruction '    ;9
  1106.  dc.l    5
  1107.  dc.b 'Prod 1992-3 '    ;10
  1108. EndHii
  1109.  blk.b    20,0
  1110.  
  1111.  
  1112. Search2:
  1113.     tst.w    Shift    ;1wcisniety 0puszczony
  1114.     beq.s    No_Shift2
  1115.     lea    Shift_Table(pc),a0
  1116.     bra.s    Ok_Ok_Cont2
  1117. No_Shift2:
  1118.     lea    No_Shift_Table(pc),a0
  1119. Ok_Ok_Cont2:
  1120.     move.b    d0,Szukaj2+3
  1121.     moveq    #0,d1    ;' '
  1122. Szukaj2:
  1123.     cmp.b    #$00,(a0)+
  1124.     beq.s    Found2
  1125.     addq.l    #1,a0
  1126.     addq.w    #1,d1
  1127.     cmp.w    #68,d1    ;za 'z'
  1128.     bne.s    Szukaj2
  1129.     rts
  1130. Found2:
  1131.     move.l    Password_Adr,a1
  1132.     addq.w    #1,PasswordNr
  1133.     cmp.w    #11,PasswordNr        ;ilosc znakow
  1134.     bne.s    Niecalywpis
  1135.     move.w    #10,PasswordNr
  1136.     subq.l    #1,Password_Adr
  1137. Niecalywpis:
  1138.     addq.l    #1,Password_Adr
  1139.     move.b    (a0),(a1)
  1140.     rts
  1141.  
  1142. **********************************
  1143.  
  1144.  
  1145.  
  1146. *    *      *    *    *****          *
  1147. *    *  **  **  ***   *     *  *  ** *    **
  1148. *    * *  * * *  *    *     *  * *   *   * *
  1149. **** *  *** * *  *    *****  ***  **  **  ****
  1150.           *                    *
  1151.         ***                 ****
  1152.  
  1153. ;ZROBIC LEVELY !!!!
  1154. Loadit:
  1155.     MOVEL    Dos
  1156.     moveq    #0,d0
  1157.     move.l    #1005,d2
  1158.     move.l    d5,d1
  1159. *    move.l    #FileName,d1
  1160.     jsr    -30(a6)    ;open file
  1161.     beq.w    Load_Error
  1162.     move.l    d0,Handle
  1163.     bsr    Seek
  1164.     move.l    d0,FileSize
  1165.     beq.w    Error
  1166. ;    bsr.s    AllocMem
  1167.  
  1168.     moveq    #0,d0
  1169.     move.l    Handle(pc),d1
  1170.     move.l    #LoadAdr,d2    ;gdzie ladowac
  1171.     move.l    FileSize(pc),d3
  1172.     CALL    Read
  1173.     cmp.w    #-1,d0
  1174.     beq.w    Error
  1175.     moveq    #0,d0
  1176.     move.l    Handle(pc),d1
  1177.     jsr    -36(a6)    ;close File
  1178.  
  1179. ;    bsr    FreeMem
  1180.  
  1181.     lea    LoadAdr,a0    ;skad brac dane
  1182.     lea    Iff,a1        ;gdzie dekompresowac
  1183.     move.l    FileSize(pc),d0
  1184.     bsr    Power_Packer
  1185.     rts
  1186. JumpLevel
  1187.     bra    Level0
  1188.     bra    Level1
  1189.     bra    Level2
  1190.     bra    Level3
  1191.     bra    Level4
  1192.     bra    Level5
  1193.     bra    Level6
  1194.     bra    Level7
  1195.     bra    Level8
  1196.     bra    Level9
  1197.     bra    Level10
  1198.  
  1199. Level0
  1200.     lea    Lev0Text,a0
  1201.     bsr    WyswietlText
  1202.     move.w    #2,Speed_tm
  1203.     move.l    #Level0_FM,d5
  1204. *    %0001    Prawo
  1205. *    %0010    Lewo
  1206. *    %0100    Dol
  1207. *    %1000    Gora
  1208.     move.w    #%0100,Lev_LastRuch1
  1209.     move.l    #$340056,Lev_PosX1
  1210.     move.w    #%0010,Lev_LastRuch2
  1211.     move.l    #$1050026,Lev_PosX2
  1212.     move.w    #%1000,lev_LastRuch3
  1213.     move.l    #$890076,Lev_PosX3
  1214.     rts
  1215. Level1
  1216.     lea    Lev0Text,a0
  1217.     bsr    WyswietlText
  1218.     move.w    #2,Speed_tm
  1219.     move.l    #Level1_FM,d5
  1220.     rts
  1221. Level2
  1222.     lea    Lev0Text,a0
  1223.     bsr    WyswietlText
  1224.     move.w    #2,Speed_tm
  1225.     move.l    #Level2_FM,d5
  1226.     rts
  1227. Level3
  1228.     lea    Lev0Text,a0
  1229.     bsr    WyswietlText
  1230.     move.w    #2,Speed_tm
  1231.     move.l    #Level3_FM,d5
  1232.     rts
  1233. Level4
  1234.     lea    Lev0Text,a0
  1235.     bsr    WyswietlText
  1236.     move.w    #2,Speed_tm
  1237.     move.l    #Level4_FM,d5
  1238.     rts
  1239. Level5
  1240.     lea    Lev0Text,a0
  1241.     bsr    WyswietlText
  1242.     move.w    #2,Speed_tm
  1243.     move.l    #Level5_FM,d5
  1244.     rts
  1245. Level6
  1246.     lea    Lev0Text,a0
  1247.     bsr    WyswietlText
  1248.     move.w    #1,Speed_tm
  1249.     move.l    #Level6_FM,d5
  1250.     rts
  1251. Level7
  1252.     lea    Lev0Text,a0
  1253.     bsr    WyswietlText
  1254.     move.w    #1,Speed_tm
  1255.     move.l    #Level7_FM,d5
  1256.     rts
  1257. Level8
  1258.     lea    Lev0Text(pc),a0
  1259.     bsr    WyswietlText
  1260.     move.w    #1,Speed_tm
  1261.     move.l    #Level8_FM,d5
  1262.     rts
  1263. Level9
  1264.     lea    Lev0Text,a0
  1265.     bsr    WyswietlText
  1266.     move.w    #1,Speed_tm
  1267.     move.l    #Level9_FM,d5
  1268.     rts
  1269. Level10
  1270.     lea    Lev0Text,a0
  1271.     bsr    WyswietlText
  1272.     move.w    #2,Speed_tm
  1273.     move.l    #Level10_FM,d5
  1274.     rts
  1275. Load_Error
  1276.     move.w    #$fff,$dff180
  1277.     move.w    #$f00,$dff180
  1278.     move.w    #$0f0,$dff180
  1279.     move.w    #$00f,$dff180
  1280.     move.w    #$000,$dff180
  1281.     btst    #6,$bfe001
  1282.     bne    Load_Error
  1283.     rts
  1284.  
  1285. Init_Game
  1286.     bsr.w    JCM
  1287.  
  1288.     lea    GameScreenColor,a0    ;ZMIENIC !
  1289.     bsr.w    Czysc_Colory    ;(32)
  1290.  
  1291. ;    lea    Points_Color,a0    ;ZMIENIC !
  1292. ;    bsr.w    Czysc_Colory    ;(32)
  1293.  
  1294.     move.w    Player1_Rgame,Player1_game
  1295.     move.w    Player2_Rgame,Player2_game
  1296.     move.w    Player3_Rgame,Player3_game
  1297.  
  1298.     move.l    #0,PunktyPierwszego
  1299.     move.l    #0,PunktyDrugiego
  1300.     move.l    #0,PunktyTrzeciego
  1301.  
  1302.     move.w    #4,Live1    ;zycia
  1303.     move.w    #4,Live2
  1304.     move.w    #4,Live3
  1305.  
  1306. ;    move.w    PlayerOne_M,PlayerOne
  1307. ;    move.w    PlayerTwo_M,PlayerTwo
  1308. ;    move.w    PlayerThree_M,PlayerThree
  1309.  
  1310. Start_Game:
  1311.     bsr.w    JCM
  1312.     bsr    copy_tlo
  1313.     moveq    #0,d0
  1314.     lea    JumpLevel(pc),a0
  1315.     move.w    Level(pc),d0
  1316.     add.w    d0,d0
  1317.     add.w    d0,d0
  1318.     add.l    d0,a0
  1319.     jsr    (a0)
  1320.     movem.l    d0-a6,-(a7)
  1321.     bsr    CJM
  1322.     movem.l    (a7)+,d0-a6
  1323.     bsr.w    Loadit
  1324.     jsr    TrackDiskDevice
  1325.     bsr    JCM
  1326.  
  1327.     lea    GameCopper,a0
  1328.     move.l    a0,$dff080
  1329.  
  1330. GameLoop:
  1331.  
  1332.     move.w    #0,Crash    ;ilosc wyeliminowanych
  1333.  
  1334.  
  1335.     lea    Iff+$30,a0    ; z obrazka do Copper Listy !!!!
  1336.     lea    MintimeColor,a1    ;dla jasno-ciemno
  1337. ;    lea    GameScreenColor,a1
  1338.     move.l    #32,d2    ;Ilosc Colorow
  1339.     bsr    DoColor
  1340.  
  1341.  
  1342.     move.w    #0,LFlash1
  1343.     move.w    #0,LFlash2
  1344.     move.w    #0,LFlash3
  1345.  
  1346.     tst.w    Player1_game
  1347.     beq.s    NoPlayer1_game
  1348.     move.l    Lev_PosX1,PosX
  1349.     bra.s    Player1_game_on
  1350. NoPlayer1_game:
  1351.     move.l    #0,PosX
  1352.  
  1353. Player1_game_on:
  1354.     tst.w    Player2_game
  1355.     beq.s    NoPlayer2_game
  1356.     move.l    Lev_PosX2,PosX2
  1357.     bra.s    Player2_game_on
  1358. NoPlayer2_game:
  1359.     move.l    #0,PosX2
  1360.  
  1361. Player2_game_on:
  1362.     tst.w    Player3_game
  1363.     beq.s    NoPlayer3_game
  1364.     move.l    Lev_PosX3,PosX3
  1365.     bra.s    Player3_game_on
  1366. NoPlayer3_game:
  1367.     move.l    #0,PosX3
  1368.  
  1369. Player3_game_on:
  1370.     lea    Iff+$98,a0    ;skad kopiowac
  1371.     lea    Ekran,a1    ;gdzie kopiowac
  1372.  
  1373. ;    move.l    #256,d0        ;ilosc lini do skopiowania
  1374.  
  1375. .2                    ;Z 5 Bitpl robi 5
  1376.     move.w    #256*5*40/4-1,d1
  1377. .1    move.l    (a0)+,(a1)+
  1378.     dbra    d1,.1
  1379.  
  1380. ;    dbf    d0,.2
  1381.  
  1382.     lea    GameCopper,a0
  1383.     move.l    a0,$dff080
  1384.  
  1385.     lea    Ekran+$bd11,a1    ;zycia pierwszego
  1386.     move.w    Live1,d1
  1387.     bsr.w    Next_Znaczek
  1388.  
  1389.     lea    Ekran+$bd1e,a1    ;zycia drugiego
  1390.     move.w    Live2,d1
  1391.     bsr.w    Next_Znaczek
  1392.  
  1393.     lea    Ekran+$bd2b,a1    ;i trzeciego
  1394.     move.w    Live3,d1
  1395.     bsr.w    Next_Znaczek
  1396.  
  1397.     bsr.w    Ciemno_Jasno    ;ROZASNIA OBRAZ
  1398.  
  1399. *     **    **   ***
  1400. *    *  *  *  *  *  *
  1401. *    *  *  *  *  ***
  1402. ****  **    **   *
  1403. Loop:
  1404.  
  1405.     lea    Ekran+$bd17,a1        ;Adr. Ekranu
  1406.     move.l    PunktyPierwszego,d0
  1407.     bsr    Points
  1408.  
  1409.     lea    Ekran+$bd24,a1        ;Adr. Ekranu
  1410.     move.l    PunktyDrugiego,d0
  1411.     bsr    Points
  1412.  
  1413.     lea    Ekran+$bd31,a1        ;Adr. Ekranu
  1414.     move.l    PunktyTrzeciego,d0
  1415.     bsr    Points
  1416.  
  1417. ;zycia przeniesiono na koniec tercji search for 'pokaz_zycia_tm'
  1418.  
  1419.         cmp.b    #$cd,$bfec01    ;p = Pausa
  1420.     bne.w    no_Pause
  1421.         bsr.w    Pause
  1422. no_Pause:
  1423. ;        cmp.b    #$77,$bfec01    ;Enter=Restart
  1424. ;    beq.w    T_T_Te_st
  1425.         cmp.b    #$3d,$bfec01    ;Prawy Shift=Restart
  1426.     beq.w    T_T_Te_st
  1427.  
  1428. ;        btst    #6,$bfe001    ;LMB or Fire Port0
  1429. ;    beq.w    End
  1430. ;        btst    #7,$bfe001    ;Fire Port1
  1431. ;    beq.w    End
  1432.         cmp.b    #$7f,$bfec01    ;Space = End
  1433.     beq.w    End
  1434.  
  1435. *Pierwszy
  1436.     move.w    PosX,d0
  1437.     bne.s    OneDo
  1438.     move.w    PosY,d1
  1439.     beq.s    Drugi
  1440. OneDo:
  1441.     move.w    PosY,d1
  1442.     move.w    LastRuch,d4
  1443.     move.w    PlayerOne,d2
  1444.     bsr    Ruch
  1445.  
  1446.     move.w    d4,LastRuch
  1447.     move.w    d0,PosX
  1448.     move.w    d1,PosY
  1449.  
  1450. Drugi:
  1451.     move.w    PosX2,d0
  1452.     bne.s    DoDrugi
  1453.     move.w    PosY2,d1
  1454.     beq.s    Trzeci
  1455. DoDrugi:
  1456.     move.w    PosY2,d1
  1457.     move.w    PlayerTwo,d2
  1458.     move.w    LastRuch2,d4
  1459.  
  1460.     bsr    Ruch
  1461.  
  1462.     move.w    d4,LastRuch2
  1463.     move.w    d0,PosX2
  1464.     move.w    d1,PosY2
  1465.  
  1466. Trzeci:
  1467.     move.w    PosX3,d0
  1468.     bne.s    DoTrzeci
  1469.     move.w    PosY3,d1
  1470.     beq.w    End_All_Do
  1471. DoTrzeci:
  1472.     move.w    PosY3,d1
  1473.     move.w    PlayerThree,d2
  1474.     move.w    LastRuch3,d4
  1475.  
  1476.      bsr.w    Ruch
  1477.  
  1478.     move.w    d4,LastRuch3
  1479.     move.w    d0,PosX3
  1480.     move.w    d1,PosY3
  1481.  
  1482.  
  1483. End_All_Do:
  1484.     cmp.b    #63,$bfec01    ;left shift=no vertical
  1485.     beq    Ultra_Speed
  1486.  
  1487.     move.b    #0,$bfec01
  1488.  
  1489.     cmp    #1,Speed_tm ;1-fast
  1490.     bne.s    FSO126
  1491.     not    opz
  1492.     beq.s    Ultra_Speed
  1493. FSO126
  1494.     cmp    #0,Speed_tm    ;0 no vertical
  1495.     beq.s    Ultra_Speed    ;1 fast    (1 frame
  1496.                 ;2 normal (2 frames
  1497. ;    move.w    #$500,$dff180
  1498.                     *     *
  1499. Vertical_Part2:                *     *
  1500.     cmp.b    #$ff,$dff006         *    *
  1501.     bne.s    Vertical_Part2         *    *
  1502. Fast_Speed:                  *    *
  1503.     cmp.b    #$7,$dff006           *  *
  1504.     bne.s    Fast_Speed            **
  1505. ;    move.w    #7,$dff180
  1506.  
  1507. Ultra_Speed:
  1508.  
  1509. **************
  1510. *PierwszyPlot*
  1511. **************
  1512.  
  1513.     move.w    PosX,d0        ;pozyzja x
  1514.     bne.s    DoOne
  1515.     move.w    PosY,d1        ;jezeli obie zero to olewa
  1516.     beq.s    Czysto1
  1517. DoOne:
  1518.     add.l    #1,PunktyPierwszego    ;punkty
  1519.     move.w    PosY,d1        ;pozycja y
  1520.     move.l    #2*40,d3    ;od ktorego bitplanu zaczynac
  1521.     bsr    Plot
  1522.     beq.s    Czysto1        ;jezeli nie zero to przeszkoda
  1523.  
  1524.     move.w    PlayerOne,d2
  1525.     btst    #3,d2
  1526.     beq.s    PierwszyBang
  1527.  
  1528. ;PierwszyComputer:
  1529.     move.w    LastRuch,d4
  1530.     bsr    ComputerMove
  1531.     bne.s    PierwszyBang
  1532.     move.w    d4,LastRuch
  1533.     move.w    d0,PosX
  1534.     move.w    d1,PosY
  1535.     bra.s    Czysto1
  1536. PierwszyBang:
  1537.     bsr    RunFlash1
  1538.     bra.w    Czysto1
  1539.  
  1540. ***********
  1541. *DrugiPlot*
  1542. ***********
  1543.  
  1544. Czysto1:
  1545.     move.w    PosX2,d0
  1546.     bne.s    DoTwo
  1547.     move.w    PosY2,d1
  1548.     beq.s    Czysto2
  1549. DoTwo:
  1550.     add.l    #1,PunktyDrugiego    ;punkty
  1551.     move.w    PosY2,d1
  1552.     move.l    #3*40,d3
  1553.     bsr    Plot
  1554.  
  1555.     beq.s    Czysto2
  1556.     move.w    PlayerTwo,d2
  1557.     btst    #3,d2
  1558.     beq.s    DrugiBang
  1559.  
  1560. ;DrugiComputer:
  1561.     move.w    LastRuch2,d4
  1562.     bsr    ComputerMove
  1563.     beq.s    TfoTfo
  1564. DrugiBang:
  1565.     bsr    RunFlash2
  1566.     bra.s    Czysto2
  1567. TfoTfo:
  1568.     move.w    d4,LastRuch2
  1569.     move.w    d0,PosX2
  1570.     move.w    d1,PosY2
  1571.  
  1572. *************
  1573. *Trzeci Plot*
  1574. *************
  1575.  
  1576. Czysto2:
  1577.  
  1578.     move.w    PosX3,d0
  1579.     bne.s    DoThree
  1580.     move.w    PosY3,d1
  1581.     beq.s    EndOfCicle
  1582. DoThree:
  1583.     add.l    #1,PunktyTrzeciego    ;punkty
  1584.     move.w    PosY3,d1
  1585.     move.l    #4*40,d3
  1586.     bsr    Plot
  1587.  
  1588.     beq.s    EndOfCicle
  1589.     move.w    PlayerThree,d2
  1590.     btst    #3,d2
  1591.     beq.s    TrzeciBang
  1592.  
  1593. ;TrzeciComputer:
  1594.     move.w    LastRuch3,d4
  1595.     bsr    ComputerMove2
  1596.     beq.w    TfoThere
  1597. TrzeciBang:
  1598.     bsr    RunFlash3
  1599.     bra.s    EndOfCicle
  1600. TfoThere:
  1601.     move.w    d4,LastRuch3
  1602.     move.w    d0,PosX3
  1603.     move.w    d1,PosY3
  1604.  
  1605. EndOfCicle:
  1606.     move.w    LFlash1,d0    ;czy pierwszy player miga ?
  1607.     beq.w    TestFlash2
  1608.  
  1609.     lea    GameScreenColor+18,a0    ;Colory w copper l.
  1610.     lea    Iff+$98+80,a1        ;do kopiowania obrazka
  1611.     lea    Ekran++80,a2        ; to tez
  1612.     move.w    Flash_1_loop,d1        ;penlta kolorow
  1613.     move.w    Flash_1_I_Loop,d2    ;pentla dodawan i odej
  1614.     move.w    Flash_Color_1,d3    ;co dodawac i co odejmowac
  1615.     bsr    Flash
  1616.     beq.s    NieCrashc1
  1617.     move.w    #1,Crash_in_LevelP1
  1618.  
  1619. NieCrashc1:
  1620.     move.w    d0,LFlash1    ;jezeli<>to miganie
  1621.     move.w    d1,Flash_1_loop
  1622.     move.w    d2,Flash_1_I_Loop
  1623.     move.w    d3,Flash_Color_1
  1624.  
  1625. TestFlash2:
  1626.     move.w    LFlash2,d0
  1627.     beq.w    TestFlash3
  1628.  
  1629.     lea    GameScreenColor+34,a0
  1630.     lea    Iff+$98+120,a1
  1631.     lea    Ekran+120,a2
  1632.     move.w    Flash_2_loop,d1
  1633.     move.w    Flash_2_I_Loop,d2
  1634.     move.w    Flash_Color_2,d3
  1635.     bsr    Flash
  1636.     beq.s    NieCrashc2
  1637.     move.w    #1,Crash_in_LevelP2
  1638. NieCrashc2:
  1639.     move.w    d0,LFlash2
  1640.     move.w    d1,Flash_2_loop
  1641.     move.w    d2,Flash_2_I_Loop
  1642.     move.w    d3,Flash_Color_2
  1643.  
  1644. TestFlash3:
  1645.     move.w    LFlash3,d0
  1646.     beq.w    Test_Flash_End
  1647.     lea    GameScreenColor+66,a0
  1648.     lea    Iff+$98+160,a1
  1649.     lea    Ekran+160,a2
  1650.     move.w    Flash_3_loop,d1
  1651.     move.w    Flash_3_I_Loop,d2
  1652.     move.w    Flash_Color_3,d3
  1653.     bsr    Flash
  1654.     beq.s    NieCrashc3
  1655.     move.w    #1,Crash_in_LevelP3
  1656. NieCrashc3:
  1657.     move.w    d0,LFlash3
  1658.     move.w    d1,Flash_3_loop
  1659.     move.w    d2,Flash_3_I_Loop
  1660.     move.w    d3,Flash_Color_3
  1661. Test_Flash_End:
  1662.  
  1663.     tst.w    LFlash1
  1664.     bne.w    Loop
  1665.     tst.w    LFlash2
  1666.     bne.w    Loop
  1667.     tst.w    LFlash3
  1668.     bne.w    Loop
  1669.  
  1670.     moveq    #0,d0
  1671.  
  1672.     tst.w    Player1_game    ;czy nie wylaczony
  1673.     bne.s    x_X_x
  1674.     addq.w    #1,d0
  1675. x_X_x:    tst.w    Player2_game
  1676.     bne.s    x_Y_x
  1677.     addq.w    #1,d0
  1678. x_Y_x:    tst.w    Player3_game
  1679.     bne.s    x_Z_x
  1680.     addq.w    #1,d0
  1681. x_Z_x:
  1682.     cmp.b    #3,d0 ;ilosc wylaczonych jezeli 2 lub trzech to se nie pograsz.
  1683.     beq    Game_over_seq
  1684.     cmp.b    #2,d0
  1685.     beq    Game_over_seq
  1686.  
  1687.     add.w    Crash,d0
  1688.     cmp.w    #2,d0        ;Ilosc wyeliminiwanych !
  1689.     blt.w    Loop
  1690. *    bne    T_T_Te_st    ?
  1691.  
  1692. T_T_Te_st:
  1693.  
  1694.  ***
  1695. *
  1696. * **
  1697. *  *
  1698. *** owno'tm
  1699.     tst.w    Crash_in_LevelP1    ;jezeli sie zniszczysz
  1700.     beq.s    NoNoSubLive1        ;to po skoniczeniu innych graczy
  1701.     sub.w    #1,Live1        ;odejmuje zycia
  1702. NoNoSubLive1:
  1703.     tst.w    Live1
  1704.     bne.s    Ne_1
  1705.     btst    #3,PlayerOne+1
  1706.     bne.s    computery_nie_gina_1    ;jezeli gra computer to traci punkty.
  1707.  
  1708.     move.l    PunktyPierwszego,Player1_to_High    ;dla hi score
  1709.     move.w    #1,Game_Over_Player_1
  1710.     move.w    #%1000,PlayerOne    ;jezeli zginoles to na twoje miejsce
  1711. *    move.w    #0,Player1_game        ;wchodzi komputer
  1712. computery_nie_gina_1:
  1713.     move.w    #4,Live1
  1714.     move.l    #0,PunktyPierwszego
  1715. Ne_1:
  1716. ;pokaz_zycia_tm
  1717.     lea    Ekran+$bd11,a1    ;zycia pierwszego
  1718.     move.w    Live1,d1
  1719.     bsr.w    Next_Znaczek
  1720.  
  1721.     tst.w    Crash_in_LevelP2
  1722.     beq.s    NoNoSubLive2
  1723.     sub.w    #1,Live2
  1724.  
  1725. NoNoSubLive2:
  1726.     tst.w    Live2
  1727.     bne.s    Ne_2
  1728.     btst    #3,PlayerTwo+1
  1729.     bne.s    computery_nie_gina_2
  1730.     move.l    PunktyDrugiego,Player2_to_High    ;dla hi score
  1731.     move.w    #1,Game_Over_Player_2
  1732.     move.w    #%1000,PlayerTwo
  1733. *    move.w    #0,Player2_game
  1734. computery_nie_gina_2:
  1735.     move.w    #4,Live2
  1736.     move.l    #0,PunktyDrugiego
  1737. Ne_2:
  1738.  
  1739. ;pokaz_zycia_tm2
  1740.     lea    Ekran+$bd1e,a1    ;zycia drugiego
  1741.     move.w    Live2,d1
  1742.     bsr.w    Next_Znaczek
  1743.  
  1744.     tst.w    Crash_in_LevelP3
  1745.     beq.s    NoNoSubLive3
  1746.     sub.w    #1,Live3
  1747. NoNoSubLive3:
  1748.     tst.w    Live3
  1749.     bne.s    Ne_3
  1750.     btst    #3,PlayerThree+1
  1751.     bne.s    computery_nie_gina_3
  1752.     move.l    PunktyTrzeciego,Player3_to_High    ;dla hi score
  1753.     move.w    #1,Game_Over_Player_3
  1754.     move.w    #%1000,PlayerThree
  1755. *    move.w    #0,Player3_game
  1756. computery_nie_gina_3:
  1757.     move.w    #4,Live3
  1758.     move.l    #0,PunktyTrzeciego
  1759. Ne_3:
  1760. ;pokaz_zycia_tm3
  1761.     lea    Ekran+$bd2b,a1    ;i trzeciego
  1762.     move.w    Live3,d1
  1763.     bsr.w    Next_Znaczek
  1764.  
  1765.  
  1766. ;!Tuuuu czy przezyles
  1767.     tst.w    Player1_game
  1768.     beq.s    .1
  1769.     tst.w    Crash_in_LevelP1
  1770.     bne    .1
  1771.     btst    #3,PlayerOne+1
  1772.     beq.s    O_K_Alive
  1773. .1
  1774.     tst.w    Player2_game
  1775.     beq.s    .2
  1776.     tst.w    Crash_in_LevelP2
  1777.     bne    .2
  1778.     btst    #3,PlayerTwo+1
  1779.     beq    O_K_Alive
  1780. .2
  1781.     tst.w    Player3_game
  1782.     bne    go_on
  1783.     tst.w    Crash_in_LevelP3
  1784.     bne    go_on
  1785.     btst    #3,PlayerThree+1
  1786.     bne    go_on
  1787. ;jezeli przezyles !
  1788. O_K_Alive:
  1789.     move.w    #0,Crash_in_LevelP1
  1790.     move.w    #0,Crash_in_LevelP2
  1791.     move.w    #0,Crash_in_LevelP3
  1792.     BSR.W    Jasno_Ciemno
  1793.     lea    Copper,a0
  1794.     move.l    a0,$dff080
  1795.     bsr    copy_tlo
  1796.     lea    LevelPass(pc),a0
  1797.     bsr    WyswietlText
  1798.     bsr    CJM
  1799.     bsr    czekay
  1800.     bsr    JCM
  1801.     addq.w    #1,Level
  1802.     cmp.w    #9,Level
  1803.     bne    no0
  1804.     move.w    #0,Level
  1805. no0
  1806.     bra    Start_Game
  1807.  
  1808. go_on:
  1809.     move.w    #0,Crash_in_LevelP1
  1810.     move.w    #0,Crash_in_LevelP2
  1811.     move.w    #0,Crash_in_LevelP3
  1812.  
  1813. ;jezeli przezyly tylko komputery to game over !
  1814. ;tylko jak sie do tego zabrac ?
  1815.     moveq    #0,d0
  1816.     btst    #3,PlayerOne+1    ;jezeli komputer to dodaje
  1817.     beq.s    C_Cont_C11
  1818.     addq.w    #1,d0
  1819.     bra.s    C_Cont_C1
  1820. C_Cont_C11:
  1821.     tst.w    Player1_game    ;nie komputer to moze niegra (zginol lub cus)
  1822.     bne.s    C_Cont_C1
  1823.     addq.w    #1,d0
  1824. C_Cont_C1:
  1825.     btst    #3,PlayerTwo+1
  1826.     beq.s    C_Cont_C22
  1827.     addq.w    #1,d0
  1828.     bra.s    C_Cont_C2
  1829. C_Cont_C22:
  1830.     tst.w    Player2_game
  1831.     bne.s    C_Cont_C2
  1832.     addq.w    #1,d0
  1833. C_Cont_C2:
  1834.     btst    #3,PlayerThree+1
  1835.     beq.s    C_Cont_C33
  1836.     addq.w    #1,d0
  1837.     bra.s    C_Cont_C3
  1838. C_Cont_C33:
  1839.     tst.w    Player3_game
  1840.     bne.s    C_Cont_C3
  1841.     addq.w    #1,d0
  1842. C_Cont_C3:
  1843.     cmp.w    #3,d0
  1844.     bge.s    Game_over_seq    ;wieksze lub rowne !
  1845.  
  1846.     BSR.W    Jasno_Ciemno
  1847.     bra.w    GameLoop
  1848.  
  1849. Game_over_seq:
  1850.     BSR.W    Jasno_Ciemno
  1851.     bsr.w    copy_tlo
  1852.     lea    Copper,a0
  1853.     move.l    a0,$dff080
  1854.  
  1855.     lea    Game_Over_Text(pc),a0
  1856.     bsr.w    WyswietlText
  1857.     tst.w    Game_Over_Player_1
  1858.     beq.s    sadassd_1
  1859.     move.w    #0,Game_Over_Player_1    ;czysci wskaznik game over
  1860.  
  1861.     move.l    Player1_to_High(pc),d0
  1862.     lea    16+GO1Txt(pc),a0
  1863.     move.w    #1,Special_P    ;tryb specjalny (tylko wrzuci liczbe
  1864.     bsr.w    Tylko_Wrzuc
  1865.  
  1866.     lea    GO1Txt(pc),a0    ;wyswietla game over pl 1
  1867.     bsr.w    WyswietlText
  1868.     bsr    CJM
  1869.     bsr    czekay
  1870.     bsr    JCM
  1871.  
  1872.     bsr    copy_tlo
  1873.     bsr    CJM
  1874.     move.l    Player1_to_High(pc),hhhhh
  1875.     bsr    hi_score_p
  1876.     bsr    JCM
  1877.  
  1878. sadassd_1:
  1879.     tst.w    Game_Over_Player_2
  1880.     beq.s    sadassd_2
  1881.     move.w    #0,Game_Over_Player_2
  1882.  
  1883.     move.l    Player2_to_High,d0
  1884.     lea    16+GO2Txt(pc),a0
  1885.     move.w    #1,Special_P
  1886.     bsr.w    Tylko_Wrzuc
  1887.  
  1888.     lea    GO2Txt(pc),a0
  1889.     bsr.w    WyswietlText
  1890. sadassd_2:
  1891.     tst.w    Game_Over_Player_3
  1892.     beq.s    sadassd_3
  1893.     move.w    #0,Game_Over_Player_3
  1894.  
  1895.     move.l    Player3_to_High,d0
  1896.     lea    16+GO3Txt(pc),a0
  1897.     move.w    #1,Special_P    ;tryb specjalny (tylko wrzuci liczbe
  1898.     bsr.w    Tylko_Wrzuc
  1899.  
  1900.     lea    GO3Txt(pc),a0
  1901.     bsr.w    WyswietlText
  1902. sadassd_3:
  1903.     bsr    CJM
  1904.     bsr    czekay
  1905.     bsr    JCM
  1906.  
  1907.     rts
  1908.  
  1909. ******
  1910. *     *
  1911. *     *
  1912. ******
  1913. *     *
  1914. *     *
  1915. *     *uch
  1916.  
  1917. Ruch:
  1918.     btst    #0,d2
  1919.     beq.s    JoyPort1
  1920. JoyPort0:
  1921.     bsr    Joystick0
  1922.     bra.s    EndRuch
  1923. JoyPort1:
  1924.     btst    #1,d2
  1925.     beq.s    Key
  1926. ;Joy1
  1927.     bsr    Joystick1
  1928.     bra.s    EndRuch
  1929. Key:
  1930.     btst    #2,d2
  1931.     beq.s    Comp1            ****
  1932. ;Keyboard
  1933.     bsr    Keyboard
  1934.     bra.w    EndRuch
  1935. Comp1:
  1936.     bsr    Last
  1937. EndRuch:    rts
  1938.  
  1939. * * * * *
  1940. ComputerMove:
  1941. * * * * *
  1942. *    %0001    Prawo
  1943. *    %0010    Lewo
  1944. *    %0100    Dol
  1945. *    %1000    Gora
  1946.  
  1947.     btst    #0,d4
  1948.     beq.s    CompLewoL
  1949. ;CompPrawoLast            ;Zderzenie z prawej
  1950.     subq.w    #1,d0    ;x-1
  1951.     addq.w    #1,d1    ;y+1
  1952.     bsr    Plot
  1953.     bne.s    DolZajety
  1954.     move.w    #%0100,d4    ;jedz w dol
  1955.     bra.w    CompRuchEnd
  1956. DolZajety:
  1957.     subq.w    #2,d1    ;poprzednio dodal 1 to teraz odjol 2
  1958.     bsr    Plot
  1959.     bne.s    Kill
  1960.     move.w    #%1000,d4    ;jedz w gore
  1961.     bra.w    CompRuchEnd
  1962. CompLewoL:
  1963.     btst    #1,d4
  1964.     beQ.s    CompDownL
  1965. ;CompLewoLast
  1966.     addq.w    #1,d0
  1967.     addq.w    #1,d1
  1968.     bsr    Plot
  1969.     bne.s    DolZajety
  1970.     move.w    #%0100,d4    ;jedz w dol
  1971.     bra.w    CompRuchEnd
  1972. CompDownL:
  1973.     btst    #2,d4
  1974.     beQ.s    CompUpL
  1975. ;CompDownLast
  1976.     subq.w    #1,d1    ;Y-1
  1977.     subq.w    #1,d0    ;x-1
  1978.     bsr    Plot
  1979.     bne.s    LewoZajete
  1980.     move.w    #%0010,d4    ;jedz w lewo
  1981.     bra.w    CompRuchEnd
  1982. LewoZajete:
  1983.     addq.w    #2,d0
  1984.     bsr    Plot
  1985.     bne.s    Kill
  1986.     move.w    #%0001,d4    ;w prawo
  1987.     bra.w    CompRuchEnd
  1988. CompUpL:
  1989.     addq.w    #1,d1
  1990.     subq.w    #1,d0
  1991.     bsr    Plot
  1992.     bne.s    LewoZajete
  1993.     move.w    #%0010,d4    ;w lewo
  1994.  
  1995. CompRuchEnd:
  1996.     moveq    #0,d2
  1997.     rts
  1998. Kill:
  1999.     move.w    #$ffff,d2
  2000.     rts
  2001.  
  2002. ComputerMove2:
  2003.  
  2004.     btst    #0,d4
  2005.     beq.s    CompLewoL2
  2006. ;CompPrawoLast            ;Zderzenie z prawej
  2007.     subq.w    #1,d0    ;x-1
  2008.     subq.w    #1,d1    ;y-1
  2009.     bsr    Plot
  2010.     bne.s    GorZajety2
  2011.     move.w    #%1000,d4    ;jedz w dol
  2012.     bra.w    CompRuchEnd
  2013. GorZajety2:
  2014.     addq.w    #2,d1    ;poprzednio dodal 1 to teraz odjol 2
  2015.     bsr    Plot
  2016.     bne.s    Kill
  2017.     move.w    #%0100,d4    ;jedz w dol
  2018.     bra.w    CompRuchEnd
  2019. CompLewoL2:
  2020.     btst    #1,d4
  2021.     beQ.s    CompDownL2
  2022. ;CompLewoLast
  2023.     addq.w    #1,d0        ;x+1
  2024.     subq.w    #1,d1        ;y-1
  2025.     bsr    Plot
  2026.     bne.s    GorZajety2
  2027.     move.w    #%1000,d4    ;jedz w gore
  2028.     bra.w    CompRuchEnd
  2029. CompDownL2:
  2030.     btst    #2,d4
  2031.     beQ.s    CompUpL2
  2032. ;CompDownLast
  2033.     subq.w    #1,d1    ;y-1
  2034.     addq.w    #1,d0    ;x+1
  2035.     bsr    Plot
  2036.     bne.s    PrawZajete2
  2037.     move.w    #%0001,d4    ;jedz w prawo
  2038.     bra.w    CompRuchEnd
  2039. PrawZajete2:
  2040.     subq.w    #2,d0    ;x-2 (pozycja przed zderzeniem)
  2041.     bsr    Plot
  2042.     bne.s    Kill
  2043.     move.w    #%0010,d4    ;w lewo
  2044.     bra.w    CompRuchEnd
  2045. CompUpL2:
  2046.     addq.w    #1,d1    ;y+1
  2047.     addq.w    #1,d0    ;x+1
  2048.     bsr    Plot
  2049.     bne.s    PrawZajete2
  2050.     move.w    #%0001,d4    ;w prawo
  2051.     bra.w    CompRuchEnd
  2052.  
  2053. Joystick0:
  2054.     move.w    $dff00a,d2        ;Port0
  2055.     bra.s    JoyStick
  2056. Joystick1:
  2057.     move.w    $dff00c,d2        ;Port0
  2058. JoyStick:
  2059.     btst    #1,d2
  2060.     beq.s    Left
  2061. ;Prawo
  2062.     btst    #1,d4
  2063.     bne.s    Last
  2064.     move.w    #%0001,d4
  2065.     addq.w    #1,d0
  2066.     bra.w    RuchEnd
  2067. Left:
  2068.     btst    #9,d2
  2069.     beq    UpDown        ;1=Lewo 0=Brak Lewa
  2070. ;Lewo
  2071.     btst    #0,d4
  2072.     bne.s    Last
  2073.     move.w    #%0010,d4
  2074.     subq.w    #1,d0
  2075.     bra.w    RuchEnd
  2076. UpDown:
  2077.     move.w    d2,d3
  2078.     lsr.w    #1,d3
  2079.     eor.w    d2,d3
  2080.     btst    #0,d3
  2081.     beq.s    Gora
  2082. ;Dol
  2083.     btst    #3,d4
  2084.     bne.s    Last
  2085.     move.w    #%0100,d4
  2086.  
  2087.     addq.w    #1,d1
  2088.     bra.s    RuchEnd
  2089. Gora:
  2090.     btst    #2,d4
  2091.     bne.s    Last
  2092.     btst    #8,d3
  2093.     beq.s    Last
  2094.  
  2095.     move.w    #%1000,d4
  2096.  
  2097.     sub.w    #1,d1
  2098.     bra.w    RuchEnd
  2099.  
  2100. Last:
  2101.  
  2102.     btst    #0,d4
  2103.     beQ.s    LewoL
  2104. ;PrawoLast
  2105.     addq.w    #1,d0
  2106.     bra.w    RuchEnd
  2107. LewoL:
  2108.     btst    #1,d4
  2109.     beQ.s    DownL
  2110. ;LewoLast
  2111.     subq.w    #1,d0
  2112.     bra.w    RuchEnd
  2113. DownL:
  2114.     btst    #2,d4
  2115.     beQ.s    UpL
  2116. ;DownLast
  2117.     addq.w    #1,d1
  2118.     bra.w    RuchEnd
  2119. UpL:
  2120.     subq.w    #1,d1
  2121.     bra.w    RuchEnd
  2122.  
  2123. RuchEnd:
  2124.     rts
  2125.  
  2126. *******
  2127. Plot: **
  2128. *******
  2129. ; a0 adr pocz lini na ekr
  2130. ; d0-pos x d1-pos y
  2131.  
  2132.     lea    Ekran,a0    ;Ekr start
  2133.     add.l    d3,a0
  2134.  
  2135.     lea    Ekran+2*40,a1    ;120
  2136.  
  2137.     move.w    d1,d2
  2138.     muls    #40*5,d2    ;Bajty w lini*wys
  2139.     add.l    d2,a0
  2140.     add.l    d2,a1
  2141.  
  2142.     move.w    d0,d2    ;save x
  2143.     lsr.w    #3,d2    ;/8
  2144.     not.b    d0
  2145.  
  2146. ;Check3Bitpl
  2147.     btst    d0,(a1,d2.w)
  2148.     bne.s    Zderzenie
  2149.  
  2150. ;Check4Bitpl
  2151.     add.l    #40,a1
  2152.     btst    d0,(a1,d2.w)
  2153.     bne.s    Zderzenie
  2154.  
  2155. ;Check5Bitpl
  2156.     add.l    #40,a1
  2157.     btst    d0,(a1,d2.w)
  2158.     bne.s    Zderzenie
  2159.  
  2160. ;NiemaZderzenia
  2161.     bset    d0,(a0,d2.w)
  2162.     not.b    d0
  2163.     moveq    #0,d2
  2164.     rts
  2165.  
  2166. Zderzenie:
  2167.     not.b    d0
  2168.     move.w    #$ffff,d2    ;Error Zderzenie
  2169.     rts
  2170.  
  2171.  
  2172. **** **** **** **** ****
  2173. Keyboard:
  2174. **** **** **** **** ****
  2175.  
  2176.     move.b    $bfec01,d2        ;Keyboard
  2177.  
  2178.     cmp.b    #$63,d2        :Prawo
  2179.     bne.w    KLeft
  2180. ;Prawo
  2181.     btst    #1,d4
  2182.     bne.w    Last
  2183.     move.w    #%0001,d4
  2184.     addq.w    #1,d0
  2185.     bra.w    KeybordEnd
  2186. KLeft:
  2187.     cmp.b    #$61,d2        ;Lewo
  2188.     bne    KUpDown
  2189. ;Lewo
  2190.     btst    #0,d4
  2191.     bne.w    Last
  2192.     move.w    #%0010,d4
  2193.     subq.w    #1,d0
  2194.     bra.w    KeybordEnd
  2195. KUpDown:
  2196.     cmp.b    #$65,d2        ;Dol
  2197.     bne.s    KGora
  2198. ;Dol
  2199.     btst    #3,d4
  2200.     bne.w    Last
  2201.     move.w    #%0100,d4
  2202.  
  2203.     addq.w    #1,d1
  2204.     bra.s    KeybordEnd
  2205. KGora:
  2206.     btst    #2,d4
  2207.     bne.w    Last
  2208.     cmp.b    #$67,d2        ;Gora
  2209.     bne.w    Last
  2210.  
  2211.     move.w    #%1000,d4
  2212.  
  2213.     sub.w    #1,d1
  2214.     bra.w    KeybordEnd
  2215.  
  2216. KeybordEnd:
  2217.  
  2218.     rts
  2219. ****
  2220. *
  2221. **
  2222. *
  2223. *lash
  2224.  
  2225. RunFlash1:
  2226.     lea    GameScreenColor+18,a0
  2227.     move.l    #0,PosX
  2228.     move.w    #$0111,d3    ;kolory 1
  2229.     move.w    #2,LFlash1    ;jezeli<>to miganie (2=najpierw odejmowac)
  2230.     move.w    #16,Flash_1_loop    ;pentla colorow  (1=najpierw dodawac)
  2231.     move.w    #16*4,Flash_1_I_Loop    ;ile razy wykonac
  2232.     move.w    d3,Flash_Color_1
  2233.     rts
  2234.  
  2235. RunFlash2:
  2236.     lea    GameScreenColor+34,a0
  2237.     lea    Iff+$98+120,a1
  2238.     lea    Ekran+120,a2
  2239.     move.l    #0,PosX2
  2240.     move.w    #$0011,d3    ;kolory drugiego
  2241.     move.w    d3,Flash_Color_2
  2242.     move.w    #2,LFlash2    ;jezeli<>to miganie
  2243.     move.w    #16,Flash_2_loop    ;pentla colorow
  2244.     move.w    #16*4,Flash_2_I_Loop    ;ile razy wykonac
  2245.     rts
  2246.  
  2247. RunFlash3:
  2248.     lea    GameScreenColor+66,a0
  2249.     lea    Iff+$98+160,a1
  2250.     lea    Ekran+160,a2
  2251.     move.l    #0,PosX3
  2252.     move.w    #$0110,d3    ;kolory 3
  2253.     move.w    d3,Flash_Color_3
  2254.     move.w    #2,LFlash3    ;jezeli<>to miganie
  2255.     move.w    #16,Flash_3_loop    ;pentla colorow
  2256.     move.w    #16*4,Flash_3_I_Loop    ;ile razy wykonac
  2257.     rts
  2258.  
  2259. Flash:
  2260.     cmp.w    #1,d0
  2261.     beq.s    Flash_Add
  2262. ;Flash_Down:
  2263.     sub.w    d3,(a0)+
  2264.     addq.l    #2,a0
  2265.     sub.w    d3,(a0)+
  2266.     addq.l    #2,a0
  2267.     sub.w    d3,(a0)+
  2268.     addq.l    #2,a0
  2269.     sub.w    d3,(a0)+
  2270.  
  2271.     subq.w    #1,d1        ;Pentla (16 w dol i 16 w gore)
  2272.     bne.s    Flash_The_End
  2273.     moveq    #1,d0    ;teraz w gore
  2274.     move.w    #16,d1
  2275.     bra.s    Flash_The_End
  2276. Flash_Add:
  2277.     add.w    d3,(a0)+
  2278.     addq.l    #2,a0
  2279.     add.w    d3,(a0)+
  2280.     addq.l    #2,a0
  2281.     add.w    d3,(a0)+
  2282.     addq.l    #2,a0
  2283.     add.w    d3,(a0)+
  2284.  
  2285.     subq.w    #1,d1
  2286.     bne.s    Flash_The_End
  2287.     moveq    #2,d0    ;teraz w dol
  2288.     move.w    #16,d1    ;odnowienie pentli
  2289.  
  2290. Flash_The_End:    
  2291.     subq.w    #1,d2    ;16*odejmowac i szesn razy dod)
  2292.     bne.s    Flash_The_NOT_ALL_END
  2293.  
  2294.     moveq    #0,d0
  2295. BitCy
  2296.     btst    #14,$dff002
  2297.     bne.s    BitCy
  2298.  
  2299.     move.l    a1,$dff050        ;BLTAPT
  2300.     move.l    a2,$dff054        ;BLTDPT
  2301.     move.l    #$ffffffff,$dff044    ;BLTAFWM and LFWM
  2302.     move.l    #$9f00000,$dff040    ;BLTCON0 d=a i 0 do bltcon1
  2303.     move.l    #$00a000a0,$dff064        ;BLTAMOD i d
  2304.     move.w    #[255*64]+[320/16],$dff058    ;BLTSIZE
  2305.  
  2306.     add.w    #1,Crash    ;liczba zabitych
  2307.  
  2308.     moveq    #1,d5
  2309.     rts
  2310.  
  2311. Flash_The_NOT_ALL_END:
  2312.     moveq    #0,d5
  2313.     rts
  2314.  
  2315.   *   *
  2316. Pause:
  2317.   *   *
  2318.     btst    #0,$bfec01
  2319.     bne.s    Pause
  2320. P_Pause:
  2321.     cmp.b    #$cd,$bfec01    ;p=koniec pausy
  2322.     bne.s    P_Pause
  2323. Pause0:
  2324.     btst    #0,$bfec01
  2325.     bne.s    Pause0
  2326.  
  2327.     rts
  2328.  
  2329. *  *  *
  2330. Points:
  2331. *  *  *
  2332. ;To ..... ! Zamiena dana w pamieci na Dziesietna w asci !
  2333. ;dziekuje ci real destruction...
  2334.  
  2335. ;wescie:
  2336. ;    a1 adres ekranu (bez special
  2337. ;    a0 gdze wrzucac liczbe w asci
  2338. ;    d0 liczba
  2339.  
  2340.  
  2341.     lea    Hi,a0
  2342.     move.l    a0,a2
  2343. Tylko_Wrzuc
  2344.     lea    Dzes,a3    ;tabela dziesiatek (wykopanie divsa
  2345.     moveq    #0,d2
  2346.     move.l    (a3)+,d1
  2347. Dziel
  2348.     move.l    (a3)+,d1
  2349.     beq    nomore
  2350. PorLiczbe
  2351.     cmp.l    d1,d0
  2352.     blt.s    Moze        ;Gdy mniejszy
  2353.     sub.l    d1,d0
  2354.     addq.b    #1,d2
  2355.     bra.s    PorLiczbe
  2356. Moze
  2357.     move.b    d2,(a0)+    ;Wrzutka liczby
  2358.     moveq    #0,d2
  2359.     bra.s    Dziel
  2360. nomore
  2361.     tst.w    Special_P    ;czy specjalne wejscie (hi score,game over)
  2362.     beq.s    No_Special_P    ;nie to nie
  2363.     move.w    #0,Special_P
  2364.     sub.l    #5,a0
  2365.     add.b    #$30,(a0)+    ;?'0'=$30
  2366.     add.b    #$30,(a0)+
  2367.     add.b    #$30,(a0)+
  2368.     add.b    #$30,(a0)+
  2369.     add.b    #$30,(a0)+
  2370.     rts
  2371. Special_P:    dc.w    0
  2372. ;
  2373. No_Special_P:
  2374.     moveq    #0,d0
  2375.     moveq    #4,d1
  2376. More:
  2377.     lea    Fonts+$10*8,a0        ;Fonts
  2378. Offset:
  2379.     move.b    (a2)+,d0
  2380.     rol.w    #3,d0            ;*8
  2381.     add.l    d0,a0
  2382.  
  2383.     moveq    #8,d0
  2384. CopyFont:
  2385.     move.b    (a0)+,(a1)
  2386.     add.l    #40*5,a1
  2387.     subq.b    #1,d0
  2388.     bne.w    CopyFont
  2389.  
  2390.     sub.l    #8*40*5-1,a1
  2391.     dbra    d1,More
  2392.     rts
  2393.  
  2394. ;pokazuje ilosc zyc
  2395.  
  2396. Next_Znaczek:
  2397.     subq.w    #1,d1
  2398.     beq.s    Ent_Znaczek
  2399.     bmi.s    Ent_Znaczek  *to tez
  2400.     cmp.w    #5,d1
  2401.     bls.s    N_Znacz    ;nizszy,rowny
  2402.     moveq    #5,d1
  2403. N_Znacz:
  2404.     lea    Fonts+24,a0        ;znaczek zycia
  2405.     moveq    #8,d0
  2406. CopyZnaczek:
  2407.     move.b    (a0)+,(a1)
  2408.     add.l    #40*5,a1
  2409.     subq.b    #1,d0
  2410.     bne.w    CopyZnaczek
  2411.  
  2412.     sub.l    #8*40*5-1,a1
  2413.     subq.w    #1,d1
  2414.     bne.s    N_Znacz
  2415. Ent_Znaczek:    *jak i to
  2416.     rts
  2417.  
  2418. ******************************************
  2419. End:            ;(for the game) _Game_End_
  2420.     BSR.W    Jasno_Ciemno
  2421. ;    movem.l    (sp)+,d0-d7/a0-a6
  2422.     rts
  2423.  
  2424. ******************************************
  2425.  
  2426. ;Track disk device ,but i'm not sure at all. . .  .   .    .     .      .
  2427. ;destroyed by r.the.k/r.d. of course in vitava [2*2*50*12]/2+790+[x*x-2]
  2428. ;x=2
  2429. ;written on trash'm-one by deftronic.
  2430.  
  2431. TrackDiskDevice:
  2432.     rts
  2433.  
  2434.     movem.l    d0-d7/a0-a6,-(sp)
  2435.     move.l    4.w,a6
  2436.  
  2437.     sub.l    a1,a1
  2438.     jsr    -294(a6)    ;find task (name a1)
  2439.     move.l    d0,ReadReply+16    ;?
  2440.     lea    ReadReply,a1
  2441.     jsr    -354(a6)    ;addport (port a1)
  2442.     lea    DiskIO,a1    ;?
  2443.  
  2444.     moveq    #0,d0
  2445.     moveq    #0,d1
  2446.  
  2447.     lea    TrackName,a0
  2448.  
  2449.     jsr    -444(a6)     ;open device devName,unit,ioRequest,flags a0,d0,a1,d1
  2450.  
  2451.     tst.l    d0
  2452.     bne.s    Track_Error
  2453. * * * *
  2454.     lea    DiskIO,a1
  2455.     move.l    #ReadReply,14(a1)    ;set reply port
  2456.     lea    DiskIO,a1
  2457.     move.w    #9,28(a1)    ;command: TD_MOTOR
  2458.     move.l    #0,36(a1)    ;Turn motor off
  2459.     jsr    -456(a6)    ;DoIo
  2460.  
  2461. * * * *
  2462.     lea    ReadReply,a1
  2463.     jsr    -360(a6)    ;RemPort (port a1)
  2464.     lea    DiskIO,a1
  2465.     jsr    -450(a6)    ;CloseDevice (ioRequest a1)
  2466.  
  2467. Track_Error:
  2468.     movem.l    (sp)+,d0-d7/a0-a6
  2469.     rts
  2470.  
  2471. TrackName:    dc.b    'trackdisk.device',0,0
  2472.     even
  2473. DiskIO:    blk.l    20,0
  2474. ReadReply:    blk.l    8,0
  2475.  
  2476. Col_Zmienna:    dc.w    0
  2477.  
  2478. Ciemno_Jasno:
  2479. ;To ma rozjasnic obraz do dobrych kolorow !
  2480.  
  2481.     moveq    #0,d3
  2482.     moveq    #$f,d5
  2483. Color_The_Loop:
  2484.     bsr    Wait
  2485.     lea    GameScreenColor+2,a0    ;Kolory copper (gdzie wrzucac
  2486.     lea    MintimeColor+2,a1    ;co powinno byc (skad brac
  2487.     move.w    #2,Col_Zmienna
  2488. Three_l0:
  2489.     moveq    #32,d7 ;ilosc colorow
  2490. Three_l1:
  2491.     moveq    #3,d6
  2492.     moveq    #0,d2
  2493.     moveq    #$f,d4
  2494. Three_l2:
  2495.     move.w    (a1),d3
  2496.     and.w    d4,d3
  2497.     cmp.w    d5,d3
  2498.     bpl.s    .1
  2499.     moveq    #0,d3
  2500.     bra.s    NextcC
  2501. .1
  2502.     sub.w    d5,d3
  2503. NextcC:
  2504.     add.w    d3,d2
  2505.     lsl.w    #4,d5
  2506.     lsl.w    #4,d4
  2507.     subq.w    #1,d6
  2508.     bne.s    Three_l2
  2509.  
  2510.     move.w    d2,(a0)
  2511.     addq.l    #4,a0
  2512.     addq.l    #4,a1
  2513.     lsr.w    #8,d5
  2514.     lsr.w    #4,d5
  2515.  
  2516.     subq.w    #1,d7
  2517.     bne.w    Three_l1
  2518.  
  2519.     add.l    #8,a0    ;2 dlugie slowa nastepna linia punkty
  2520.     sub.w    #1,Col_Zmienna
  2521.     bne.s    Three_l0
  2522.  
  2523.     dbf    d5,Color_The_Loop
  2524.  
  2525.     rts
  2526.  
  2527.  
  2528. Jasno_Ciemno:
  2529. ;Sciemnia obrazek...
  2530.  
  2531.     moveq    #16,d0        ;to samo 15 czy 16 16!
  2532.  
  2533. Szesna_Loop:
  2534.     bsr    Wait
  2535.     lea    GameScreenColor+2,a0 (skad brac i gdzie wrzucac
  2536.     move.w    #2,Col_Zmienna
  2537.  
  2538. Point_SLoop:
  2539.     move.w    #32,d1
  2540. Ilosc_Loop:
  2541.     move.w    #%0000000000001111,d2
  2542.     move.w    #$0001,d3
  2543.     moveq    #0,d6
  2544.     moveq    #3,d5
  2545. Three_loop:
  2546.     move.w    (a0),d4
  2547.     and.w    d2,d4
  2548.     beq.s    NieSciemniaj
  2549.     sub.w    d3,d4
  2550. NieSciemniaj:
  2551.     lsl.w    #4,d2
  2552.     lsl.w    #4,d3
  2553.     add.w    d4,d6    ;wynik
  2554.     subq.w    #1,d5
  2555.     bne.s    Three_loop
  2556.  
  2557.     move.w    d6,(a0)
  2558.     addq.l    #4,a0
  2559.  
  2560.     subq.w    #1,d1    ;ilosc kolorow
  2561.     bne.s    Ilosc_Loop
  2562.  
  2563.     add.l    #8,a0    ;2 dlugie slowa nastepna linia punkty
  2564.     sub.w    #1,Col_Zmienna
  2565.     bne.s    Point_SLoop
  2566.  
  2567.     subq.l    #1,d0    ;Sciemnianie do zera $f
  2568.     bne.s    Szesna_Loop
  2569.     rts
  2570.  
  2571. JCM:
  2572. ;Sciemnia menu.
  2573. ;d0-d6 a0
  2574.     moveq    #16-1,d0
  2575. Szesna_loopM:
  2576.     VERTICAL $100
  2577.     VERTICAL $101
  2578.     lea    ScreenColor+2,a0 (skad brac i gdzie wrzucac
  2579. Point_SLoopM:
  2580.     moveq    #16-1,d1 ;ilosc kolorow
  2581. Ilosc_LoopM:
  2582.     moveq    #%0000000000001111,d2
  2583.     moveq    #$0001,d3
  2584.     moveq    #0,d6
  2585.     moveq    #3,d5
  2586. Three_loopM:
  2587.     move.w    (a0),d4
  2588.     and.w    d2,d4
  2589.     beq.s    NieSciemniajM
  2590.     sub.w    d3,d4
  2591. NieSciemniajM:
  2592.     lsl.w    #4,d2
  2593.     lsl.w    #4,d3
  2594.     add.w    d4,d6    ;wynik
  2595.     subq.w    #1,d5
  2596.     bne.s    Three_loopM
  2597.  
  2598.     move.w    d6,(a0)
  2599.     addq.l    #4,a0
  2600.  
  2601.     dbf    d1,Ilosc_LoopM
  2602.  
  2603.     dbf    d0,Szesna_loopM    ;Sciemnianie do zera $f
  2604.     rts
  2605.  
  2606. CJM:
  2607. ;To ma rozjasnic obraz do dobrych kolorow !
  2608. ;d3-d7 a0-a1
  2609.     moveq    #0,d3
  2610.     moveq    #$f,d5
  2611. Color_The_loopM:
  2612.     bsr    Wait_S
  2613.     lea    2+ScreenColor,a0    ;Kolory copper
  2614.     lea    2+ScreenMinColor(pc),a1    ;co powinno byc
  2615.     moveq    #16-1,d7 ;ilosc colorow
  2616. Three_L1M:
  2617.     moveq    #3,d6
  2618.     moveq    #0,d2
  2619.     moveq    #$f,d4
  2620. Three_l2M:
  2621.     move    (a1),d3
  2622.     and    d4,d3
  2623.     cmp    d5,d3
  2624.     bpl.s    NextCM
  2625.     moveq    #0,d3
  2626.     bra.s    NextcCM
  2627. NextCM:
  2628.     sub    d5,d3
  2629. NextcCM:
  2630.     add    d3,d2
  2631.     lsl    #4,d5
  2632.     lsl    #4,d4
  2633.     subq    #1,d6
  2634.     bne.s    Three_l2M
  2635.  
  2636.     move    d2,(a0)
  2637.     addq.l    #4,a0
  2638.     addq.l    #4,a1
  2639.     lsr    #8,d5
  2640.     lsr    #4,d5
  2641.  
  2642.     dbf    d7,Three_L1M
  2643.  
  2644.     dbf    d5,Color_The_loopM
  2645.  
  2646.     rts
  2647.  
  2648.  
  2649. Wait:
  2650.     move.l    d0,-(sp)
  2651.     moveq    #3-1,d0        ;opoznienie w Verticalach
  2652. Wwait:
  2653.     cmp.b    #$ff,$dff006
  2654.     bne.s    Wwait
  2655. wwait0:    cmp.b    #$fe,$dff006
  2656.     bne.s    wwait0
  2657.     dbf    d0,Wwait
  2658.     move.l    (sp)+,d0
  2659.     rts
  2660. Wait_S:
  2661.     move.l    d0,-(sp)
  2662.     moveq    #1,d0
  2663. ve2    cmp.b    #$fe,$dff006
  2664.     bne.s    ve2
  2665. ve3    cmp.b    #$ff,$dff006
  2666.     bne.s    ve3
  2667.     dbf    d0,ve2
  2668.     move.l    (sp)+,d0
  2669.     rts
  2670. Czysc_Colory:
  2671. ;Poniewaz kolory sa przerzucane gdzie indziej to to tworzy kolory 0
  2672.  
  2673.     move.w    #$180,d0
  2674.     moveq    #32,d1
  2675. Rub180:
  2676.     move.w    d0,(a0)+
  2677.     move.w    #0,(a0)+
  2678.     addq.w    #2,d0
  2679.     subq.w    #1,d1
  2680.     bne.s    Rub180
  2681.     rts
  2682.  
  2683. ;*********************************
  2684. ;* POWER PACKER DECRUNCH ROUTINE *
  2685. ;*********************************
  2686. ; Resourced by Mac of Katharsis!
  2687. ;
  2688. ;przy wejsciu w a0 start bloku,w d0 dlugosc bloku
  2689. ;    w a1 dokad ma zdepakowac
  2690. ;    kod jest calkowicie relokowalny
  2691. ;
  2692.  
  2693. Power_Packer:
  2694.     cmpi.l #'PP20',(a0)    ;tylko standartowe pliki
  2695.     bne.s rets        ;nie zakodowane etc.
  2696.     lea costam(pc),a2
  2697.     move.l 4(a0),(a2)
  2698.     add.l d0,a0
  2699.     movem.l    d1-d7/a2-a6,-(sp)
  2700.     bsr.s    lbCEAE
  2701.     movem.l    (sp)+,d1-d7/a2-a6
  2702. rets
  2703.     rts
  2704. lbCEAE
  2705.     move.l a1,a2
  2706.     lea costam(pc),a5
  2707.     move.l -(a0),d5
  2708.     moveq    #0,d1
  2709.     move.b d5,d1
  2710.     lsr.l #8,d5
  2711.     add.l d5,a1
  2712.     move.l -(a0),d5
  2713.     lsr.l d1,d5
  2714.     move.b    #$20,d7
  2715.     sub.b d1,d7
  2716. lbC000EC8
  2717.     bsr.s lbC000F3A
  2718.     tst.b d1
  2719.     bne.s lbC000EEE
  2720.     moveq #0,d2
  2721. lbC000ED0
  2722.     moveq #2,d0
  2723.     bsr.s lbC000F3C
  2724.     add.w d1,d2
  2725.     cmp.w #3,d1
  2726.     beq.w lbC000ED0
  2727. lbC000EDC
  2728.     moveq #8,d0
  2729.     bsr.s lbC000F3C
  2730.     move.b    d1,-(a1)
  2731.     dbf d2,lbC000EDC
  2732.     cmp.l    a1,a2
  2733.     bcs.s    lbC000EEE
  2734.     rts
  2735. lbC000EEE
  2736.     moveq #2,d0
  2737.     bsr.s    lbC000F3C
  2738.     moveq    #0,d0
  2739.     move.b    0(a5,d1.w),d0
  2740.     move.l    d0,d4
  2741.     move.w    d1,d2
  2742.     addq.w    #1,d2
  2743.     cmp.w    #4,d2
  2744.     bne.s lbC000F20
  2745.     bsr.s lbC000F3A
  2746.     move.l d4,d0
  2747.     tst.b d1
  2748.     bne.s lbC000F0E
  2749.     moveq    #7,d0
  2750. lbC000F0E
  2751.     bsr.s    lbC000F3C
  2752.     move.w    d1,d3
  2753. lbC000F12
  2754.     moveq #3,d0
  2755.     bsr.s lbC000F3C
  2756.     add.w    d1,d2
  2757.     cmp.w    #7,d1
  2758.     beq.w    lbC000F12
  2759.     bra.s    lbC000F24
  2760. lbC000F20
  2761.     bsr.s    lbC000F3C
  2762.     move.w    d1,d3
  2763. lbC000F24
  2764.     move.b    0(a1,d3.w),d0
  2765.     move.b    d0,-(a1)
  2766.     dbf d2,lbC000F24
  2767. *    move.w    d3,$00DFF180    ;kolor decrunchu    [a ja go wykopalem]
  2768.     cmp.l    a1,a2        ;troche go zmienilem    [r the k]
  2769.     bcs.s    lbC000EC8
  2770.     rts
  2771. lbC000F3A
  2772.     moveq    #1,d0
  2773. lbC000F3C
  2774.     moveq    #0,d1
  2775.     subq.w    #1,d0
  2776. lbC000F40
  2777.     lsr.l    #1,d5
  2778.     roxl.l    #1,d1
  2779.     subq.b    #1,d7
  2780.     bne.s    lbC000F4E
  2781.     move.b    #$20,d7
  2782.     move.l    -(a0),d5
  2783. lbC000F4E
  2784.     dbf d0,lbC000F40
  2785.     rts
  2786. costam    dc.l    $090A0B0B
  2787.  
  2788.     blk.l    40,0
  2789.  
  2790. MintimeColor:
  2791.     blk.l    32,0
  2792. Mintime_Points_Color:
  2793.  dc.w    $0180,$0000,$0182,$0ddd,$0184,$0bbb,$0186,$0aaa
  2794.  dc.w    $0188,$0fff,$018a,$0fff,$018c,$0fff,$018e,$0fff
  2795.  dc.w    $0190,$00ff,$0192,$00ff,$0194,$00ff,$0196,$00ff
  2796.  dc.w    $0198,$0009,$019a,$000b,$019c,$000d,$019e,$000f
  2797.  dc.w    $01a0,$0ff0,$01a2,$0ff0,$01a4,$0ff0,$01a6,$0ff0
  2798.  dc.w    $01a8,$000a,$01aa,$00a0,$01ac,$0a00,$01ae,$00aa
  2799.  dc.w    $01b0,$0111,$01b2,$0333,$01b4,$0555,$01b6,$0666
  2800.  dc.w    $01b8,$0888,$01ba,$0aaa,$01bc,$0ccc,$01be,$0eee
  2801.  
  2802.  
  2803. MenuText:    ;   '                    '
  2804.     dc.b    0
  2805.     dc.b      3,' <REAL DESTRUCTION>',0
  2806.     dc.b     28,'    Gdynia 1992-3',0
  2807.     dc.b     70,' F1 - Player One',0
  2808.     dc.b     91,' F2 - Player Two',0
  2809.     dc.b    112,' F3 - Player Three',0
  2810.     dc.b    132,' F4 - HiScore',0
  2811.     dc.b    150,' F5 - Password ',0
  2812.     dc.b    170,' F6 - Credits',0
  2813.     dc.b    210,'F10 - Start',0
  2814.     dc.b    0,0
  2815.     even
  2816.  
  2817. ControlText:    ;   '                    '
  2818.     dc.b    0
  2819.     dc.b     60,' F1 - Joy Port 1',0
  2820.     dc.b     81,' F2 - Joy Port 0',0
  2821.     dc.b    102,' F3 - Keyboard',0
  2822.     dc.b    124,' F4 - COMPUTER',0
  2823.     dc.b    145,'*F5 - Redefine Keys',0
  2824.     dc.b    166,' F6 - No player',0
  2825.     dc.b    0,0
  2826.     even
  2827.  
  2828. WarningText:    ;   '                    '
  2829.     dc.b    0
  2830.     dc.b     40,'      Warning !',0
  2831.     dc.b     60,'    This is just',0
  2832.     dc.b     81,'    a preview of',0
  2833.     dc.b    103,'  coming full game',0
  2834.     dc.b    125,'        from',0
  2835.     dc.b    147,' <Real Destruction>',0
  2836.     dc.b    0,0
  2837.     even
  2838.  
  2839. GwiazdkaThings:    ;   '                    '
  2840.  
  2841.     dc.b    0
  2842.     dc.b    100,'   Things with *',0
  2843.     dc.b    121,'     dont work',0
  2844.     dc.b    0,0
  2845.     even
  2846.  
  2847. CreditsText0:
  2848.     dc.b    0
  2849.     dc.b     60,'    Light Cycle',0
  2850.     dc.b     85,'       is  a',0
  2851.     dc.b    110,' <Real Destruction>',0
  2852.     dc.b    132,'     Production',0
  2853.     dc.b    231,' Gdynia 1993.01.03',0
  2854.     dc.b    0,0
  2855.     even
  2856. CreditsText1:
  2857.     dc.b    0
  2858.     dc.b     99,'Credits:',0
  2859.     dc.b    120,'    Gfx:Sleeper/RD',0
  2860.     dc.b    141,'  Music:BFA/Suspect',0
  2861.     dc.b    162,'  Music:Dr.Stool/RD',0
  2862.     dc.b    183,'   Code:R.The.K./RD',0
  2863.     dc.b    0,0
  2864.     even
  2865.  
  2866. CreditsText2:
  2867.     dc.b    0
  2868.     dc.b      5,'    Instruction:',0
  2869.     dc.b     50,'Press:',0
  2870.     dc.b     75,'P     - Pause',0
  2871.     dc.b     96,'M     - Music ON/OFF',0
  2872.     dc.b    117,'L.SHIFT - Restart',0
  2873.     dc.b    138,'R.SHIFT - Speed Up',0
  2874.     dc.b    159,'SPACE - Quit Game',0
  2875.     dc.b    180,'Esc in menu for quit',0
  2876.     dc.b    201,'    to dos',0
  2877.     dc.b    0,0
  2878.     even
  2879.  
  2880. CreditsText3:    ;   '                    '
  2881.     dc.b    0
  2882.     dc.b      4,'If you wanna contact',0
  2883.     dc.b     23,' <Real Destruction>',0
  2884.     dc.b     45,'   Then write to:',0
  2885.     dc.b     66,'     [R.The.K.]',0
  2886.     dc.b    104,'  Rafal Konkolewski',0
  2887.     dc.b    125,' Nauczycielska 4/23',0
  2888.     dc.b    146,'       81-614',0
  2889.     dc.b    167,'       Gdynia',0
  2890.     dc.b    188,'       Poland',0
  2891.     dc.b    0,0
  2892.  
  2893. CreditsText4:    ;   '                    '
  2894.     dc.b    0
  2895.     dc.b      1,' Grettings fly to:',0
  2896.     dc.b      21,' BFA, Coza, Creator',0
  2897.     dc.b     42,'   Crupel Monster',0
  2898.     dc.b     63,'   Dr.Stool, Fenom',0
  2899.     dc.b     84,'  Glowa, Ifa, Kane',0
  2900.     dc.b    105,'     KWK, Locky',0
  2901.     dc.b    126,'  Malin, Michal M',0
  2902.     dc.b    147,'  Pillar, Piontal',0
  2903.     dc.b    168,'  Przemas, Rewizor',0
  2904.     dc.b    189,'SCA, Slipper, Sergey',0
  2905.     dc.b    210,'TCDS, Tetlox, Torba',0
  2906.     dc.b    231,'        XTD',0
  2907.  
  2908.     dc.b    0,0
  2909.     even
  2910.  
  2911. Lev0Text
  2912.     dc.b 0
  2913.     dc.b 160,'Loading Level ',0,0,0,0
  2914.  
  2915. LevelPass
  2916.  dc.b 0
  2917.  dc.b 120,' You may pass',0,0
  2918.  
  2919. Game_Over_Text:    ;   '                    '
  2920.     dc.b    0
  2921.     dc.b     50,' Its look like...',0
  2922.     dc.b     71,'     Game Over.',0
  2923.     dc.b    0,0
  2924.  
  2925. GO1Txt:        ;'                    '
  2926.     dc.b    0
  2927.     dc.b     92,'Player 1 -          ',0
  2928.     dc.b    0,0
  2929.  
  2930. GO2Txt:        ;'                    '
  2931.     dc.b    0
  2932.     dc.b    113,'Player 2 -          ',0
  2933.     dc.b    0,0
  2934.  
  2935. GO3Txt:        ;'                    '
  2936.     dc.b    0
  2937.     dc.b    135,'Player 3 -          ',0
  2938.     dc.b    0,0
  2939.  
  2940. Text:
  2941.     dc.b    0
  2942.     dc.b     70,'  Enter Password:'
  2943. p_text:
  2944.     dc.b    0
  2945.     dc.b    120,'    ____________    ',0,0
  2946.  
  2947. Password_Table:
  2948.  
  2949. ;Levels code
  2950.     dc.b    'alien 3_____'    ;0
  2951.     dc.b    'none________'    ;1
  2952.     dc.b    'lev2________'    ;2
  2953.     dc.b    'lev3________'    ;3
  2954.     dc.b    'lev4________'    ;4
  2955.     dc.b    'lev5________'    ;5
  2956.     dc.b    'lev6________'    ;6
  2957.     dc.b    'lev7________'    ;7
  2958.     dc.b    'lev8________'    ;8
  2959.     dc.b    'lev9________'    ;9
  2960.     dc.b    'lev10_______'    ;10
  2961.     dc.b    'MTV_________'    ;11 Special from here
  2962.     dc.b    'Loki________'    ;12
  2963.     dc.b    'R.The.K.____'    ;13
  2964.     dc.b    'Dr.Stool____'    ;14
  2965.     dc.b    'Piontal_____'    ;15
  2966.     dc.b    'Slipper_____'    ;16
  2967.     dc.b    'Shit________'    ;17
  2968.     dc.b    'fuck________'    ;18
  2969.     dc.b    'fuck off____'    ;19
  2970.     dc.b    'tcds________'    ;20
  2971.     dc.b    'Pillar______'    ;21
  2972.     dc.b    'Colombo_____'    ;22
  2973.     dc.b    'Kane________'    ;23
  2974.     dc.b    'Creator_____'    ;24
  2975.     dc.b    'SCA_________'    ;25
  2976.     dc.b    'Michal M____'    ;26
  2977.  
  2978. ilosc_chasel    equ 24+1
  2979.  
  2980. DosName:    dc.b 'dos.library',0
  2981. Gfxname:    dc.b 'graphics.library',0,0
  2982.  
  2983. *******************************************************************************
  2984. *                TEXTY DO HASE?L                      *
  2985. *******************************************************************************
  2986.  
  2987. ;texty passwordow
  2988. AlienTXT: ;'                    ' ;11
  2989.  dc.b    0
  2990.  dc.b     150,'    This is good.',0,0
  2991.  
  2992. EmptyT: ;'                    ' ;11
  2993.  dc.b    0
  2994.  dc.b     150,'not now',0,0
  2995.  
  2996. mtvTXT:   ;'                    ' ;11
  2997.     dc.b    0
  2998.  dc.b     110,'     I like MTV',0,0
  2999.  
  3000. LockyTXT:  ;'                    ' ;12
  3001.     dc.b    0
  3002.  dc.b     130,'    How how how...',0
  3003.  dc.b     152,' my brother is here.',0,0
  3004.  
  3005. PillarTXT:;'                    ' ;21
  3006.     dc.b    0
  3007.  dc.b     150,' Thanks for help.',0,0
  3008. * dc.b     173,'       ',0,0
  3009.  
  3010. KaneTXT ;'                    ' ;23
  3011.     dc.b    0
  3012.  dc.b     150,' Thanks for help.',0,0
  3013.  
  3014. CreatTXT ;'                    ' ;24
  3015.     dc.b    0
  3016.  dc.b    129,'!!!!!!!!!!!!!!!!!!!!',0
  3017.  dc.b    150,'     MOJE DYSKI',0
  3018.  dc.b    172,'!!!!!!!!!!!!!!!!!!!!',0,0
  3019.  
  3020.      even
  3021.  
  3022. Level0_FM:    dc.b    'dh1:sources/lightcycle/Levels/Level0.pic.pp',0
  3023. Level1_FM:    dc.b    'dh1:sources/lightcycle/levels/Level1.pic.pp',0
  3024. Level2_FM:    dc.b    'dh1:sources/lightcycle/levels/Level2.pic.pp',0
  3025. Level3_FM:    dc.b    'dh1:sources/lightcycle/levels/Level3.pic.pp',0
  3026. Level4_FM:    dc.b    'dh1:sources/lightcycle/levels/Level4.pic.pp',0
  3027. Level5_FM:    dc.b    'dh1:sources/lightcycle/levels/Level5.pic.pp',0
  3028. Level6_FM:    dc.b    'dh1:sources/lightcycle/levels/Level6.pic.pp',0
  3029. Level7_FM:    dc.b    'dh1:sources/lightcycle/levels/Level7.pic.pp',0
  3030. Level8_FM:    dc.b    'dh1:sources/lightcycle/levels/Level8.pic.pp',0
  3031. Level9_FM:    dc.b    'dh1:sources/lightcycle/levels/Level9.pic.pp',0
  3032. Level10_FM:    dc.b    'dh1:sources/lightcycle/levels/Level10.pic.pp',0
  3033.  
  3034.     even
  3035.  
  3036. ***********************************
  3037. INTB_VERTB  equ   5                 ; for vblank interrupt
  3038. _AddIntServer    EQU    -168
  3039. _RemIntServer    EQU    -174
  3040.  
  3041. StartIrq:
  3042.     IFNE    MUSIC
  3043.     jsr    mt_init
  3044.     ENDIF
  3045.  
  3046.     EXEC
  3047.     lea    VBlankServer(pc),a1
  3048.     moveq    #INTB_VERTB,d0
  3049.     JUMP    AddIntServer    ; (intNumber,interrupt)
  3050. ***********************************
  3051. StopIrq:
  3052.     EXEC
  3053.     moveq    #INTB_VERTB,d0
  3054.     lea    VBlankServer(pc),a1
  3055.     CALL    RemIntServer    ; (intNumber,interrupt)
  3056.     IFNE    MUSIC
  3057.     bsr    mt_end
  3058.     ENDIF
  3059.     rts
  3060.  
  3061. *********************************
  3062. VBlankServer:
  3063.     dc.l    0,0    ;node succ,ln_Pred
  3064. ln_type1:dc.b    2,0    ;ln_Type,ln_Prio
  3065.     dc.l    IrqName    ;ln_name
  3066.     dc.l    0    ;irq data
  3067.     dc.l    Interrupt ;irq code
  3068.  
  3069. IrqName:    dc.b    'Light Cycle Music',0
  3070. *Irq
  3071.     even
  3072. Interrupt:
  3073.     movem.l    d0-a6,-(sp)
  3074.     lea    $dff000,a5
  3075.     tst.w    Music_On
  3076.     beq.w    No_Music
  3077.  
  3078.     IFNE    MUSIC
  3079.     jsr    mt_music
  3080.     ENDIF
  3081. No_Music:
  3082. ;    cmp.b    #$91,$bfec01    ;litera m wlancza,wylancza muzyke
  3083. ;    bne.s    Koniec_Przerwania
  3084. ;    move.b    #0,$bfec01
  3085. ;    not.w    Music_on
  3086. ;Nie_Zmiana_M:
  3087. ;    tst.w    Music_On
  3088. ;    bne.s    Koniec_Przerwania
  3089. ;    clr.w    $a8(a5)    ;?
  3090. ;    clr.w    $b8(a5)
  3091. ;    clr.w    $c8(a5)
  3092. ;    clr.w    $d8(a5)
  3093. ;    move.w    #$f,$96(a5)
  3094.  
  3095. Koniec_Przerwania:
  3096.     movem.l    (sp)+,d0-a6
  3097.     rts
  3098.  
  3099. Music_On:
  3100.     dc.w    -1
  3101.  
  3102. Seek:        MOVEL    Dos
  3103.         move.l    Handle(pc),d1
  3104.         moveq    #0,d2
  3105.         moveq    #OFFSET_END,d3
  3106.     CALL    Seek
  3107.         move.l    Handle(pc),d1
  3108.         moveq    #0,d2
  3109.         moveq    #OFFSET_BEGINNING,d3
  3110.     JUMP    Seek
  3111.  
  3112. FreeMem:
  3113.     tst.l    AllocMem
  3114.     beq.s    .nofree
  3115.  
  3116.     move.l    AllocMem(pc),a1
  3117.     move.l    FileSize(pc),d0
  3118.     EXEC
  3119.     CALL    FreeMem
  3120.     clr.l    AllocMem
  3121. .nofree
  3122.     rts
  3123.  
  3124. *    *    *    *    *    *    *    *    *
  3125. *    *    *    *    *    *    *    *    *
  3126.  
  3127.     IFNE    MUSIC
  3128.     include    'PT2.1A_Play+.s'
  3129.     ENDIF
  3130.  
  3131.     IF    SAVE=1
  3132. Fonts
  3133.     incbin    'slp2.fnt'
  3134.     ENDIF
  3135.  
  3136. *******************************************************************************
  3137.  
  3138. *                DANE:
  3139.  
  3140. *******************************************************************************
  3141.  
  3142. Dzes    ;tabela dziesiatek (wykopanie divsa
  3143.  dc.l 100000,10000,1000,100,10,1,0,0
  3144.  
  3145. No_Shift_Table:
  3146. ;Tabela kodow
  3147. ;bez shifta !
  3148.  DC.B    $FF,'`',$FD,'1',$FB,'2',$F9,'3',$F7,'4',$F5,'5',$F3,'6',$F1,'7'
  3149.  DC.B    $ef,'8',$ed,'9',$eb,'0',$e9,'-',$e7,'=',$e5,'\',$7b,'?',$df,'q'
  3150.  DC.B    $dd,'w',$db,'e',$d9,'r',$d7,'t',$d5,'y',$d3,'u',$d1,'i',$cf,'o'
  3151.  DC.B    $cd,'p',$cb,'[',$c9,']',$bf,'a',$bd,'s',$bb,'d',$b9,'f',$b7,'g'
  3152.  DC.B    $b5,'h',$b3,'j',$b1,'k',$af,'l',$ad,';',$ab,'''',$a9,'@',$9f,'<'
  3153.  DC.B    $9d,'z',$9b,'x',$99,'c',$97,'v',$95,'b',$93,'n',$91,'m',$8f,','
  3154.  DC.B    $8d,'.',$8b,'/',$4b,'[',$49,']',$47,'`',$45,'*',$85,'7',$83,'8'
  3155.  DC.B    $81,'9',$6b,'-',$a5,'4',$a3,'5',$a1,'6',$43,'+',$c5,'1',$c3,'2'
  3156.  DC.B    $c1,'3',$e1,'0',$87,'.',$7f,' '
  3157.  
  3158. Shift_Table:
  3159. ;Tabela kodow
  3160. ;z shiftem
  3161.  DC.B    $FF,'~',$FD,'!',$FB,'"',$F9,'#',$F7,'$',$F5,'%',$F3,'^',$F1,'&'
  3162.  DC.B    $EF,'*',$ED,'(',$EB,')',$E9,'_',$E7,'+',$E5,'|',$7B,'?',$DF,'Q'
  3163.  DC.B    $DD,'W',$DB,'E',$D9,'R',$D7,'T',$D5,'Y',$D3,'U',$D1,'I',$CF,'O'
  3164.  DC.B    $CD,'P',$CB,'[',$C9,']',$BF,'A',$BD,'S',$BB,'D',$B9,'F',$B7,'G'
  3165.  DC.B    $B5,'H',$B3,'J',$B1,'K',$AF,'L',$AD,':',$AB,'"',$A9,'?',$9F,'>'
  3166.  DC.B    $9D,'Z',$9B,'X',$99,'C',$97,'V',$95,'B',$93,'N',$91,'M',$8F,'<'
  3167.  DC.B    $8D,'>',$8B,'?',$4B,'[',$49,']',$47,'`',$45,'*',$85,'7',$83,'8'
  3168.  DC.B    $81,'9',$6B,'-',$A5,'4',$A3,'5',$A1,'6',$43,'+',$C5,'1',$C3,'2'
  3169.  DC.B    $C1,'3',$E1,'0',$87,'.',$7F,' '
  3170.  
  3171. *    %0001    Prawo
  3172. *    %0010    Lewo
  3173. *    %0100    Dol
  3174. *    %1000    Gora
  3175.  
  3176. AllocMem:    dc.l    0
  3177. FileSize:    dc.l    0
  3178. LastRuch:    dc.w    %0100
  3179. PosX:        dc.w    50
  3180. PosY:        dc.w    90
  3181. LastRuch2:    dc.w    %0001
  3182. PosX2:        dc.w    51
  3183. PosY2:        dc.w    185
  3184. LastRuch3:    dc.w    %0010
  3185. PosX3:        dc.w    100
  3186. PosY3:        dc.w    70
  3187.  
  3188. Lev_LastRuch1:    dc.w    0
  3189. Lev_PosX1:        dc.l    0
  3190. Lev_LastRuch2:    dc.w    0
  3191. Lev_PosX2:        dc.l    0
  3192. lev_LastRuch3:    dc.w    0
  3193. Lev_PosX3:        dc.l    0
  3194.  
  3195. *    %0001    JoyPort0
  3196. *    %0010    JoyPort1
  3197. *    %0100    Keyboard (Cursors+SPACE)
  3198. *    %1000    Computer (or computer help)
  3199. PlayerOne:    dc.w    %0010 ;w grze
  3200. PlayerTwo:    dc.w    %1000
  3201. PlayerThree:    dc.w    %1000
  3202.  
  3203. Live1:    dc.w    0
  3204. Live2:    dc.w    0
  3205. Live3:    dc.w    0
  3206.  
  3207. Player1_game:    dc.w    1    ;1 gra zero nie gra
  3208. Player2_game:    dc.w    1
  3209. Player3_game:    dc.w    1
  3210.  
  3211. Player1_Rgame:    dc.w    1    ;1 gra zero nie gra
  3212. Player2_Rgame:    dc.w    1
  3213. Player3_Rgame:    dc.w    1
  3214.  
  3215. Crash_in_LevelP1:    dc.w    0    ;jerzeli zniszczyles sie w tercji
  3216. Crash_in_LevelP2:    dc.w    0    ;to na koniec odejmuje zycia
  3217. Crash_in_LevelP3:    dc.w    0
  3218.  
  3219. Game_Over_Player_1:    dc.w    0    ;1 game over in this Level
  3220. Game_Over_Player_2:    dc.w    0
  3221. Game_Over_Player_3:    dc.w    0
  3222.  
  3223. LFlash1:    dc.w    0
  3224. LFlash2:    dc.w    0
  3225. LFlash3:    dc.w    0
  3226. Flash_1_loop:    dc.w    0
  3227. Flash_1_I_Loop:    dc.w    0
  3228. Flash_Color_1:    dc.w    0
  3229. Flash_2_loop:    dc.w    0
  3230. Flash_2_I_Loop:    dc.w    0
  3231. Flash_Color_2:    dc.w    0
  3232. Flash_3_loop:    dc.w    0
  3233. Flash_3_I_Loop:    dc.w    0
  3234. Flash_Color_3:    dc.w    0
  3235.  
  3236. Hi:            blk.b    6,0
  3237. PunktyPierwszego:    dc.l    0
  3238. PunktyDrugiego:        dc.l    0
  3239. PunktyTrzeciego:    dc.l    0
  3240.  
  3241. Player1_to_High:    dc.l    0    ;dla hi score
  3242. Player2_to_High:    dc.l    0
  3243. Player3_to_High:    dc.l    0
  3244.  
  3245. Level:    dc.w    0    ;numer Levela
  3246. Crash:    dc.w    0
  3247. MenuEnter: dc.w    0
  3248.  
  3249. Speed_tm:    dc.w    2
  3250. Old_DMA:    dc.w    0
  3251. oldcop:        dc.l    0
  3252. opz        dc.w    0
  3253. Password_NR:    dc.w    0    ;znaleziony password
  3254. PasswordNr:    dc.w    0 ;zmienna pomocnicza
  3255. Password_Adr:    dc.l    0 ;adres do porownania
  3256. Shift:    dc.w    0    ;0-puszczony 1-wcisniety
  3257. DosBase:    dc.l    0
  3258. Handle:        dc.l    0
  3259. LoadAdr:    ds.b    30000    ;na podw spakowany iff
  3260.  
  3261.         SECTION        'COPPER',DATA_C
  3262.  
  3263.  
  3264. ***************************************
  3265. Copper:
  3266.     dc.w    $1fc,0
  3267.     dc.w    $0100,%0100001000000000    ;Bptlcontrol reg.
  3268.     dc.w    $0102,$0000    ;Hor-Scroll
  3269.     dc.w    $0104,$0000    ;Sprite/Gfx priorit
  3270.     dc.w    $0108,$0078    ;Modulo    (Odd)
  3271.     dc.w    $010a,$0078    ;Modulo    (Exen)
  3272.     dc.w    $008e,$2981    ;DiwStrt
  3273.     dc.w    $0090,$29c1    ;DiwStop
  3274.     dc.w    $0092,$0038
  3275.     dc.w    $0094,$00d0
  3276.  
  3277. BitplanAdres
  3278.     dc.w    $00e0,$0006    ;1    ;Btpl Adr.
  3279.     dc.w    $00e2,$0000
  3280.     dc.w    $00e4,$0006    ;2
  3281.     dc.w    $00e6,$2800
  3282.     dc.w    $00e8,$0006    ;3
  3283.     dc.w    $00ea,$5000
  3284.     dc.w    $00ec,$0006    ;4
  3285.     dc.w    $00ee,$7800
  3286.  
  3287. ;Clear Sprites
  3288.  dc.l $1200000,$1220000,$1240000,$1260000
  3289.  dc.l $1280000,$12a0000,$12c0000,$12e0000
  3290.  dc.l $1300000,$1320000,$1340000,$1360000
  3291.  dc.l $1380000,$13a0000,$13c0000,$13e0000
  3292. ScreenColor:
  3293.  dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  3294.  dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  3295.     dc.l    -2
  3296.  
  3297. GameCopper:
  3298.     dc.w    $1fc,0
  3299.     dc.w    $0100,$5200    ;Bptlcontrol reg.
  3300.     dc.w    $0102,$0000    ;Hor-Scroll
  3301.     dc.w    $0104,$0000    ;Sprite/Gfx priorit
  3302.     dc.w    $0108,$00a0    ;Modulo    (Odd)
  3303.     dc.w    $010a,$00a0    ;Modulo    (Exen)
  3304.     dc.w    $008e,$2981
  3305.     dc.w    $0090,$29c1
  3306.     dc.w    $0092,$0038
  3307.     dc.w    $0094,$00d0
  3308.  
  3309. BitplanADR:
  3310.     dc.w    $e0,0,$e2,0
  3311.     dc.w    $e4,0,$e6,0
  3312.     dc.w    $e8,0,$ea,0
  3313.     dc.w    $ec,0,$ee,0
  3314.     dc.w    $f0,0,$f2,0
  3315.     dc.w    $f4,0,$f6,0
  3316.  
  3317. ;clear sprites
  3318.  dc.l $1200000,$1220000,$1240000,$1260000,$1280000,$12a0000,$12c0000,$12e0000
  3319.  dc.l $1300000,$1320000,$1340000,$1360000,$1380000,$13a0000,$13c0000,$13e0000
  3320.  
  3321. GameScreenColor:    ;nie wazne bierze kolory z obrazka !
  3322.  
  3323.  dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  3324.  dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  3325.  dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  3326.  dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  3327.  
  3328. *    dc.w    $3001,$fffe
  3329. *    dc.w    $0180,$0fff
  3330.  
  3331.     dc.w    $ffdf,$fffe    ;colory dolu i punktow
  3332.     dc.w    $1001,$fffe
  3333. Points_Color:
  3334.  dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  3335.  dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  3336.  dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  3337.  dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  3338.  
  3339.     dc.l    -2
  3340.  
  3341.  
  3342.     IFNE    SAVE
  3343. Tlo2
  3344.     incbin    'tlo2+.pic'
  3345.     IFNE    MUSIC
  3346. mt_data
  3347.     incbin    'mod.voice from rv-125'
  3348. ;    incbin    'mod.soviet dog'
  3349.     ENDIF
  3350.  
  3351.     ENDIF
  3352.  
  3353.         SECTION    'SCREEN',BSS_C
  3354.     ds.b    40*20
  3355. Ekran:
  3356.     ds.b    40*256*5
  3357.     ds.b    40*20
  3358.  
  3359.         SECTION    'SCREEN',BSS_C
  3360. Iff:            ;gdzie dekompresowac
  3361.     ds.b    40*256*5
  3362.     ds.b    40*20
  3363.  
  3364. *    *    *    *    *    *    *    *    *
  3365.  
  3366.             ;DOS INCLUDE
  3367. _CurrentDir:    equ    -126
  3368. _Open:    equ    -30
  3369. _Close:    equ    -36
  3370. _Read:    equ    -42
  3371. _Write:    equ    -48
  3372. _Lock:    equ    -84
  3373. _UnLock:    equ    -90
  3374. _Examine:    equ    -102
  3375. OFFSET_END    equ    1
  3376. OFFSET_BEGINNING    equ    -1
  3377. _Seek    EQU    -66
  3378.  
  3379. ;EXEC
  3380. _AllocMem    EQU    -198
  3381. _FreeMem    EQU    -210
  3382. _OpenLibrary    EQU    -552
  3383. _CloseLibrary    EQU    -414
  3384. _OldOpenLibrary:    equ    -408
  3385.  
  3386.